[Question] [Thảo luận]Bypass Apache Tomcat's security policy |
30/07/2008 08:04:37 (+0700) | #1 | 144090 |
boom_jt
Member
|
0 |
|
|
Joined: 02/08/2007 23:51:10
Messages: 125
Offline
|
|
Hi,
Boom muốn tìm hiểu về vấn đề này nên hi vọng ai biết có thể chỉ cho mình nha. Vì khi nói về thâm nhập thì có vẻ tấn công server apache cài php là phổ biến nhất.
Mình có tìm hiểu Documentation của Apache Tomcat thì thấy rằng việc cấp permission trong Apache Tomcat 5.5 được thực hiện thông qua file policy
http://tomcat.apache.org/tomcat-5.5-doc/security-manager-howto.html
Vậy có thể có cách nào để bypass những settings này? Chẳng hạn như trong settings thì không có quyền thao tác với file, mà mình muốn viết 1 trang JSP có thể làm đc việc này? Cũng nói cụ thể thêm trường hợp giả định là
- apache tomcat chạy dưới quyền root --> nếu có file-access permission thì khá nguy hiểm đó.
- Apache có cài thêm php 5.2.5, safemode off, no disable function
- deicated server, mỗi vhost có tương ứng 1 user. Các user này cùng nằm trong 1 group inetuser. Thư mục chứa web của từng user đều được cấp quyền 705 --> những người cùng group không thể thực hiện "local attack" để truy cập vào các file của người khác được.
- server mysql không nằm trên localhost
- kẻ tấn công đã có 1 con shell php
- OS linux ko có lỗi kernel để nâng quyền
Vậy suy nghĩ ban đầu của mình là làm cách nào đó từ con shell php với safemode off và no disable function thì thay đổi được policy chạy jsp, rồi upload 1 file jsp để thao tác (dưới quyền root). Mọi người có gợi ý gì ko?
Thanks |
|
|
|
|
[Question] [Thảo luận]Bypass Apache Tomcat's security policy |
31/07/2008 00:49:57 (+0700) | #2 | 144247 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
boom_jt wrote:
Hi,
Boom muốn tìm hiểu về vấn đề này nên hi vọng ai biết có thể chỉ cho mình nha. Vì khi nói về thâm nhập thì có vẻ tấn công server apache cài php là phổ biến nhất.
Mình có tìm hiểu Documentation của Apache Tomcat thì thấy rằng việc cấp permission trong Apache Tomcat 5.5 được thực hiện thông qua file policy
http://tomcat.apache.org/tomcat-5.5-doc/security-manager-howto.html
Vậy có thể có cách nào để bypass những settings này? Chẳng hạn như trong settings thì không có quyền thao tác với file, mà mình muốn viết 1 trang JSP có thể làm đc việc này? Cũng nói cụ thể thêm trường hợp giả định là
OK.
boom_jt wrote:
- apache tomcat chạy dưới quyền root --> nếu có file-access permission thì khá nguy hiểm đó.
Tại sao phải chạy tomcat dưới quyền root?
boom_jt wrote:
- Apache có cài thêm php 5.2.5, safemode off, no disable function
tomcat có liên quan gì đến safemod đâu mà on với off?
boom_jt wrote:
- deicated server, mỗi vhost có tương ứng 1 user. Các user này cùng nằm trong 1 group inetuser. Thư mục chứa web của từng user đều được cấp quyền 705 --> những người cùng group không thể thực hiện "local attack" để truy cập vào các file của người khác được.
vhost này nằm trên tầng apache hay nằm trên tầng tomcat?
boom_jt wrote:
- server mysql không nằm trên localhost
Không quan trọng mà quan trọng là connect đến mysql bằng cách nào.
boom_jt wrote:
- kẻ tấn công đã có 1 con shell php
Con shell đó ăn thua gì nếu .php không được biên dịch mà chỉ được xử lý như .txt?
boom_jt wrote:
- OS linux ko có lỗi kernel để nâng quyền
Có cách nào invoke được cái unix shell đâu mà phải lo chuyện nâng quyền do lỗi kernel?
boom_jt wrote:
Vậy suy nghĩ ban đầu của mình là làm cách nào đó từ con shell php với safemode off và no disable function thì thay đổi được policy chạy jsp, rồi upload 1 file jsp để thao tác (dưới quyền root). Mọi người có gợi ý gì ko?
Thanks
tomcat thì dáng gì đến php shell và safemod off? |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] Re: [Thảo luận]Bypass Apache Tomcat's security policy |
31/07/2008 00:56:38 (+0700) | #3 | 144249 |
nbthanh
HVA Friend
|
Joined: 21/12/2001 14:51:51
Messages: 429
Offline
|
|
Chắc boom đang nhầm lẫn giữa 2 thằng:
- Apache Webserver: là thằng web server mà mình hay xài/gặp.
- Apache Tomcat: tuy cũng có tên là Apache, và nó có vẻ "giống giống" như 1 webserver nhưng thực sự nó là không phải. Nó là 1 servlet container chứ không phải là 1 webserver như Apache Webserver. |
|
|
|
|
[Question] Re: [Thảo luận]Bypass Apache Tomcat's security policy |
31/07/2008 01:04:56 (+0700) | #4 | 144252 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
nbthanh wrote:
Chắc boom đang nhầm lẫn giữa 2 thằng:
- Apache Webserver: là thằng web server mà mình hay xài/gặp.
- Apache Tomcat: tuy cũng có tên là Apache, và nó có vẻ "giống giống" như 1 webserver nhưng thực sự nó là không phải. Nó là 1 servlet container chứ không phải là 1 webserver như Apache Webserver.
Tôi có cái link này trong bookmark: /hvaonline/posts/list/13731.html |
|
Let's build on a great foundation! |
|
|
|
[Question] Re: [Thảo luận]Bypass Apache Tomcat's security policy |
31/07/2008 06:00:02 (+0700) | #5 | 144333 |
|
Z0rr0
Q+WRtaW5pc3RyYXRvc+g
|
Joined: 14/08/2002 12:52:01
Messages: 1323
Location: Underground
Offline
|
|
nbthanh wrote:
Chắc boom đang nhầm lẫn giữa 2 thằng:
- Apache Webserver: là thằng web server mà mình hay xài/gặp.
- Apache Tomcat: tuy cũng có tên là Apache, và nó có vẻ "giống giống" như 1 webserver nhưng thực sự nó là không phải. Nó là 1 servlet container chứ không phải là 1 webserver như Apache Webserver.
Vài thông tin thêm từ bài của bác nbthanh.
Tomcat là application server, đóng vai trò chính trong việc thực thi một web application, làm việc trực tiếp với database server. Ngoài Tomcat, có thể kể đến như GlassFish, JBoss... hỗ trợ được Java EE. |
|
Hibernating |
|
|
|
[Question] Re: [Thảo luận]Bypass Apache Tomcat's security policy |
31/07/2008 06:25:43 (+0700) | #6 | 144340 |
nbthanh
HVA Friend
|
Joined: 21/12/2001 14:51:51
Messages: 429
Offline
|
|
Z0rr0 wrote:
nbthanh wrote:
Chắc boom đang nhầm lẫn giữa 2 thằng:
- Apache Webserver: là thằng web server mà mình hay xài/gặp.
- Apache Tomcat: tuy cũng có tên là Apache, và nó có vẻ "giống giống" như 1 webserver nhưng thực sự nó là không phải. Nó là 1 servlet container chứ không phải là 1 webserver như Apache Webserver.
Vài thông tin thêm từ bài của bác nbthanh.
Tomcat là application server, đóng vai trò chính trong việc thực thi một web application, làm việc trực tiếp với database server. Ngoài Tomcat, có thể kể đến như GlassFish, JBoss... hỗ trợ được Java EE.
Đính chính chút: Tomcat chỉ là servlet container (search lại toàn bộ các bài của bác conmale với từ khóa là Tomcat xem ) chứ không phải là 1 application server.
Và Application Server host các "application" nói chung chứ không phải là 1 mình web-application. |
|
|
|
|
[Question] Re: [Thảo luận]Bypass Apache Tomcat's security policy |
31/07/2008 06:51:05 (+0700) | #7 | 144346 |
|
Z0rr0
Q+WRtaW5pc3RyYXRvc+g
|
Joined: 14/08/2002 12:52:01
Messages: 1323
Location: Underground
Offline
|
|
Cảm ơn bác nbthanh, thông tin bác đưa chính xác.
Sở dĩ tui nghĩ và ghi nhập nhằng như trên vì nhiều lúc vẫn dùng Tomcat với vai trò của một app server, vì có lẽ tui chưa gặp yêu cầu nào khác phức tạp ngoài khả năng phục vụ của Tomcat . Nhiều lập trình viên mới bước vào thế giới Java EE cũng nhầm lẫn như vậy. |
|
Hibernating |
|
|
|
[Question] Re: [Thảo luận]Bypass Apache Tomcat's security policy |
31/07/2008 08:53:40 (+0700) | #8 | 144375 |
boom_jt
Member
|
0 |
|
|
Joined: 02/08/2007 23:51:10
Messages: 125
Offline
|
|
hi, thanks các bác đã reply. Hôm nay mất điện cả ngày ko làm gì được
Đầu tiên boom xin trả lời về Apache và Tomcat mà mọi người nhắc tới nha: trong trường hợp này Apache và Apache Tomcat đồng thời chạy cùng nhau!
Khi đọc Response Headers thì nhận được trường Server chỉ có 1 chuỗi đơn giản là "Apache". Tuy nhiên tại mọi thư mục, đều có thể chạy cả script php và jsp.
Khi chạy phpinfo() thì nhận được :
_SERVER["SERVER_SIGNATURE"] : Apache/1.3.33 Server
_SERVER["SERVER_SOFTWARE"] : Apache
Trong các directory listing thì hiện theo kiểu Apache tomcat và có dòng sau ở cuối trang:
Apache Tomcat/5.0.27
Tomcat được đặt trong thư mục /web/tomcat
php.ini được đặt trong thư mục /web/conf
Ok, h boom trả lời tiếp bài của bác conmale nha:
conmale wrote:
Tại sao phải chạy tomcat dưới quyền root?
Đó là cấu hình trên server đó, cũng có thể coi là 1 trường hợp giả định như thế, nên ta mới đặt ra mục tiêu làm sao có được các permission của tomcat để có được quyền root.
conmale wrote:
tomcat có liên quan gì đến safemod đâu mà on với off?
Đúng thế, vì vậy boom mới viết safemode off ở dòng liên quan đến PHP đó bác. Thông tin này được lấy ra từ phpinfo()
conmale wrote:
vhost này nằm trên tầng apache hay nằm trên tầng tomcat?
Có lẽ là của apache, document-root của mỗi user có dạng: /home/u/s/r/user/html
chứ không phải là /web/tomcat/webapps/ hoặc liên quan j tới tomcat
conmale wrote:
Không quan trọng mà quan trọng là connect đến mysql bằng cách nào.
Boom chưa rõ ý câu hỏi này lắm, khi boom nói mysql nằm ở host khác là ý muốn nói không thể dùng các hàm thao tác file trên server này thông qua mysql được
conmale wrote:
Con shell đó ăn thua gì nếu .php không được biên dịch mà chỉ được xử lý như .txt?
Shell php và jsp đều chạy được như boom đã giải thích ở trên (có điều shell jsp do bị cấm nhiều quyền như đã nói ở bài đầu tiên nên không có tác dụng)
conmale wrote:
Có cách nào invoke được cái unix shell đâu mà phải lo chuyện nâng quyền do lỗi kernel?
Cái này thì có chứ bác, 1 số shell đều có chức năng bind port và cả back connect.
Mong mọi người chỉ giáo |
|
|
|
|
[Question] Re: [Thảo luận]Bypass Apache Tomcat's security policy |
31/07/2008 12:08:08 (+0700) | #9 | 144404 |
nbthanh
HVA Friend
|
Joined: 21/12/2001 14:51:51
Messages: 429
Offline
|
|
|
|
[Question] Re: [Thảo luận]Bypass Apache Tomcat's security policy |
31/07/2008 12:59:05 (+0700) | #10 | 144407 |
|
K4i
Moderator
|
Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
|
|
@boom_jt: mình không hiểu rõ câu hỏi của boom lắm. Phải chăng ý của boom là từ một con shell php leo sang chơi một site chạy trên tomcat ở cùng một host với nhau.
|
|
Sống là để không chết chứ không phải để trở thành anh hùng |
|
|
|
[Question] Re: [Thảo luận]Bypass Apache Tomcat's security policy |
31/07/2008 13:10:17 (+0700) | #11 | 144413 |
boom_jt
Member
|
0 |
|
|
Joined: 02/08/2007 23:51:10
Messages: 125
Offline
|
|
hi K4i, ý của mình là từ con shell php có thể tung tăng (trong phạm vi) với safemode off và no disable functions... làm sao để chỉnh sửa cái security policy của tomcat, từ đó làm cho con shell jsp của mình cũng có thể ..."tung tăng" mà jsp lại đc chạy với quyền root, cho nên nó có thể "xâm phạm" vào nhiều chỗ lắm ^^ (hiện tại do các security policy của tomcat mà shell jsp nè ko có tác dụng) |
|
|
|
|
[Question] Re: [Thảo luận]Bypass Apache Tomcat's security policy |
31/07/2008 13:17:32 (+0700) | #12 | 144414 |
nbthanh
HVA Friend
|
Joined: 21/12/2001 14:51:51
Messages: 429
Offline
|
|
boom_jt wrote:
hi, thanks các bác đã reply. Hôm nay mất điện cả ngày ko làm gì được
Đầu tiên boom xin trả lời về Apache và Tomcat mà mọi người nhắc tới nha: trong trường hợp này Apache và Apache Tomcat đồng thời chạy cùng nhau!
Khi đọc Response Headers thì nhận được trường Server chỉ có 1 chuỗi đơn giản là "Apache". Tuy nhiên tại mọi thư mục, đều có thể chạy cả script php và jsp.
Khi chạy phpinfo() thì nhận được :
_SERVER["SERVER_SIGNATURE"] : Apache/1.3.33 Server
_SERVER["SERVER_SOFTWARE"] : Apache
Trong các directory listing thì hiện theo kiểu Apache tomcat và có dòng sau ở cuối trang:
Apache Tomcat/5.0.27
Tôi hiểu ý bạn thế này không biết có đúng không?
1. Apache Webserver và Tomcat được cài song song chạy cùng lúc với nhau
2. Bạn đã có 1 con shell PHP
3. Giờ lợi dụng con shell PHP này bạn "tạo" ra 1 con shell JSP để chạy trên Tomcat vì bạn suy đoán, hoặc bằng cách nào đó bạn biết được Tomcat đang chạy dưới quyền 1 account có thể thâm nhập sâu hơn vào hệ thống, hoặc Tomcat này đang được cấu hình "hơi lỏng lẻo"?
Có phải thế không? |
|
|
|
|
[Question] Re: [Thảo luận]Bypass Apache Tomcat's security policy |
31/07/2008 13:30:34 (+0700) | #13 | 144416 |
boom_jt
Member
|
0 |
|
|
Joined: 02/08/2007 23:51:10
Messages: 125
Offline
|
|
hi bác nbthanh,
1. đúng ^^
2. đúng ^^
3. đúng Bài trả lời K4i của boom có thể giải thích rõ hơn 1 chút đó bác. Boom nói rõ thêm là 1 trang jsp bình thường có thể chạy được, nhưng nếu đụng tới đọc file, hay exec gì là nó báo lỗi permission liền ^^ |
|
|
|
|
[Question] Re: [Thảo luận]Bypass Apache Tomcat's security policy |
31/07/2008 13:41:42 (+0700) | #14 | 144419 |
|
K4i
Moderator
|
Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
|
|
|
Sống là để không chết chứ không phải để trở thành anh hùng |
|
|
|
[Question] Re: [Thảo luận]Bypass Apache Tomcat's security policy |
31/07/2008 13:46:37 (+0700) | #15 | 144420 |
boom_jt
Member
|
0 |
|
|
Joined: 02/08/2007 23:51:10
Messages: 125
Offline
|
|
hì hì đây đây, đấy là điều đầu tiên boom nghĩ tới : chỉnh sửa trực tiếp file policy của tomcat
nhưng khốn nỗi file này đã chmod kĩ rồi, view còn ko đc nà ^^
về quyền restart thì ta cứ từ từ đã, có thể áp dụng cách này cách nọ, ko có cách hay thì cũng sẽ có cách nào đó gọi là "hạ sách" |
|
|
|
|
[Question] Re: [Thảo luận]Bypass Apache Tomcat's security policy |
31/07/2008 13:55:18 (+0700) | #16 | 144422 |
|
K4i
Moderator
|
Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
|
|
Tạm tóm tắt thế này nhé:
Mục tiêu: sửa lại policy của Tomcat để up shell JSP lên
How: can thiệp vào file policy của Tomcat
Method: sửa trực tiếp hay còn trò gì khác.
hì, mình cảm tưởng là boom mới làm việc với tomcat 1, 2 lần gì đó thì phải. Toàn bộ các file cấu hình của Tomcat được viết dưới dạng xml. Nên làm trò gì được khác đây khi chmod cẩn thận đến mức view cũng không xong huống chi đến chỉnh sửa. Hết sách roài. |
|
Sống là để không chết chứ không phải để trở thành anh hùng |
|
|
|
[Question] Re: [Thảo luận]Bypass Apache Tomcat's security policy |
31/07/2008 14:00:35 (+0700) | #17 | 144423 |
boom_jt
Member
|
0 |
|
|
Joined: 02/08/2007 23:51:10
Messages: 125
Offline
|
|
mình thì ko nghĩ thế, đôi khi người ta vẫn có thể có "trick" nào đó để bypass đó K4i và chính mục "how" và "method" là cần phải bàn nè, có khi là cả "mục tiêu" nữa ý chứ |
|
|
|
|
[Question] Re: [Thảo luận]Bypass Apache Tomcat's security policy |
31/07/2008 14:09:51 (+0700) | #18 | 144425 |
|
K4i
Moderator
|
Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
|
|
Hì, nếu như có trick thì mình hoàn toàn muốn đc biết thêm để mở rộng tầm mắt . Dạo này suy nghĩ cứng quá roài |
|
Sống là để không chết chứ không phải để trở thành anh hùng |
|
|
|
[Question] Re: [Thảo luận]Bypass Apache Tomcat's security policy |
31/07/2008 23:28:41 (+0700) | #19 | 144450 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
boom_jt wrote:
hi, thanks các bác đã reply. Hôm nay mất điện cả ngày ko làm gì được
Đầu tiên boom xin trả lời về Apache và Tomcat mà mọi người nhắc tới nha: trong trường hợp này Apache và Apache Tomcat đồng thời chạy cùng nhau!
Khi đọc Response Headers thì nhận được trường Server chỉ có 1 chuỗi đơn giản là "Apache". Tuy nhiên tại mọi thư mục, đều có thể chạy cả script php và jsp.
Khi chạy phpinfo() thì nhận được :
_SERVER["SERVER_SIGNATURE"] : Apache/1.3.33 Server
_SERVER["SERVER_SOFTWARE"] : Apache
Trong các directory listing thì hiện theo kiểu Apache tomcat và có dòng sau ở cuối trang:
Apache Tomcat/5.0.27
Tomcat được đặt trong thư mục /web/tomcat
php.ini được đặt trong thư mục /web/conf
Nói một cách khác, server này có apache 1.3.x cho phép chạy php. Đồng thời nó cũng hỗ trợ jsp, có tomcat.
boom_jt wrote:
Ok, h boom trả lời tiếp bài của bác conmale nha:
conmale wrote:
Tại sao phải chạy tomcat dưới quyền root?
Đó là cấu hình trên server đó, cũng có thể coi là 1 trường hợp giả định như thế, nên ta mới đặt ra mục tiêu làm sao có được các permission của tomcat để có được quyền root.
Những ai "chuyên" một tí với *nix thì không bao giờ chạy 1 dịch vụ với chủ quyền root. Dịch vụ nếu cần open privilege port (< 1024) thì mới cần root, tomcat thường dùng port > 1024 (mặc định là 8080) thì không việc gì phải chạy bằng root cả. Nếu cần phải open privilege port thì nên (và thường) drop privildge từ root xuống 1 account bình thường sau khi đã mở port xong (apache là 1 trường hợp điển hình - chạy bằng account nobody hoặc tương tự sau khi mở cổng 80).
boom_jt wrote:
conmale wrote:
tomcat có liên quan gì đến safemod đâu mà on với off?
Đúng thế, vì vậy boom mới viết safemode off ở dòng liên quan đến PHP đó bác. Thông tin này được lấy ra từ phpinfo()
Cái này chỉ có giá trị cho php và chỉ cho php mà thôi. Nó không có liên quan gì đến jsp cả.
boom_jt wrote:
conmale wrote:
vhost này nằm trên tầng apache hay nằm trên tầng tomcat?
Có lẽ là của apache, document-root của mỗi user có dạng: /home/u/s/r/user/html
chứ không phải là /web/tomcat/webapps/ hoặc liên quan j tới tomcat
Cái này là "real path" đến virtualhost chớ không phải là virtualhost configuration. Tìm hiểu thêm về virtualhost config cho apache và tomcat (trên server.xml).
boom_jt wrote:
conmale wrote:
Không quan trọng mà quan trọng là connect đến mysql bằng cách nào.
Boom chưa rõ ý câu hỏi này lắm, khi boom nói mysql nằm ở host khác là ý muốn nói không thể dùng các hàm thao tác file trên server này thông qua mysql được
Sao không được? Nếu php hoặc jsp có một config nào chứa DB account (username, pass, db host, db port, db name...) thì vẫn có thể chạy mysql command ngay trên host chạy apache đó để truy cập vào DB. Nếu không thì làm sao php, jsp truy vấn được DB?
boom_jt wrote:
conmale wrote:
Con shell đó ăn thua gì nếu .php không được biên dịch mà chỉ được xử lý như .txt?
Shell php và jsp đều chạy được như boom đã giải thích ở trên (có điều shell jsp do bị cấm nhiều quyền như đã nói ở bài đầu tiên nên không có tác dụng)
Cái gì khiến cho "shell" jsp cấm nhiều quyền và "shell" ít cấm?
boom_jt wrote:
conmale wrote:
Có cách nào invoke được cái unix shell đâu mà phải lo chuyện nâng quyền do lỗi kernel?
Cái này thì có chứ bác, 1 số shell đều có chức năng bind port và cả back connect.
À... "shell" ở dạng này hả? nó là một "shell" giả, không set tty (tự tìm hiểu thêm) nên chỉ chạy lặt vặt vài lệnh cho vui chớ không thể exploit thật sự được. Dùng loại "shell" này chỉ hú họa may có 1 cái script nào do root own nhưng lại set mode là 777 thì còn họa may chấm mút chút đỉnh. Đó là chưa kể hầu hết các server ngày nay có firewall mặc định không cho phép truy cập vào các cổng không thông thường (như 25, 80, 443...) thì dùng có spawn 100 cái socket cũng không cách gì connect vào.
boom_jt wrote:
Mong mọi người chỉ giáo
Thay chữ "chỉ giáo" bằng chữ "trao đổi" thì hay hơn . |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] Re: [Thảo luận]Bypass Apache Tomcat's security policy |
01/08/2008 00:53:02 (+0700) | #20 | 144465 |
boom_jt
Member
|
0 |
|
|
Joined: 02/08/2007 23:51:10
Messages: 125
Offline
|
|
okie thanks bác conmale, có 1 số điểm boom đã rõ hơn 1 số thì cũng xin giải thích tiếp
conmale wrote:
Sao không được? Nếu php hoặc jsp có một config nào chứa DB account (username, pass, db host, db port, db name...) thì vẫn có thể chạy mysql command ngay trên host chạy apache đó để truy cập vào DB. Nếu không thì làm sao php, jsp truy vấn được DB?
Tất nhiên là mình có thể connect tới mysql server nhờ có tài khoản "lụm" được trong file config. Lúc trước boom vẫn nghĩ rằng trong trường hợp này, thì câu query sẽ được gửi tới cái remote mysql server kia, và nó phải được thực thi ở trên server đó. Do vậy các thao tác liên quan tới file (câu truy vấn kiểu như select load_file (...) ) nếu thực thì được thì cũng không phải là các file trên máy chủ mình đang cần khai thác mà là máy chủ chứa mysql kìa.
Tuy nhiên có vẻ như nhận định này đã sai, boom mới thử xong thì dường như kết quả trả về lại đúng là các file trên máy chủ mình cần khai thác. Điều này thì quả thật boom chưa hiểu, boom nghĩ rằng mysql server là thằng chịu trách nhiệm xử lý query chứ? Ai rõ về phần này chỉ cho boom với nha
Vậy hiện tại boom có thể dùng mysql để đọc file, nhưng cũng nằm trong quyền hạn đã config thôi, chớ ko đọc lung tung được "into outfile" thì denied rùi ^^
conmale wrote:
Cái gì khiến cho "shell" jsp cấm nhiều quyền và "shell" ít cấm?
/web/tomcat/conf/catalina.policy quy định policy cho Tomcat, còn /web/conf/php.ini chứa các thông số config cho PHP.
Cũng nói thêm (và đính chính) là file catalina.policy có quyền đọc (có lẽ lúc trước boom không để ý). Và boom để ý có dòng sau:
// ========== WEB APPLICATION PERMISSIONS =====================================
// These permissions are granted by default to all web applications
// In addition, a web application will be given a read FilePermission
// and JndiPermission for all files and directories in its document root.
Như vậy phải chăng là dù có chạy với user root thì mặc định Tomcat đã không cho phép truy cập ngoài document-root?
conmale wrote:
À... "shell" ở dạng này hả? nó là một "shell" giả, không set tty (tự tìm hiểu thêm) nên chỉ chạy lặt vặt vài lệnh cho vui chớ không thể exploit thật sự được. Dùng loại "shell" này chỉ hú họa may có 1 cái script nào do root own nhưng lại set mode là 777 thì còn họa may chấm mút chút đỉnh. Đó là chưa kể hầu hết các server ngày nay có firewall mặc định không cho phép truy cập vào các cổng không thông thường (như 25, 80, 443...) thì dùng có spawn 100 cái socket cũng không cách gì connect vào.
Nếu đã bind port hay back connect thành công, và nếu kernel có lỗi, thì dựa trên exploit có sẵn, vẫn có thể thành root và giữ được session đó bác. Shell này có khả năng iteract.
Tuy nhiên, cũng xin nói thêm là server đã có firewall (or đứng sau router), vì thế bind port có thể thành công nhưng không thể kết nối tới được, và cũng ko back connect được luôn - cái này có lẽ do firewall. Sau khi thưc hiện back connect, boom thử netstat thì thấy báo ở dòng tương ứng là SYN_SENT.
Mong mọi người tiếp tục "trao đổi" hì hì |
|
|
|
|
[Question] Re: [Thảo luận]Bypass Apache Tomcat's security policy |
01/08/2008 04:02:48 (+0700) | #21 | 144510 |
|
tranhuuphuoc
Moderator
|
Joined: 05/09/2004 06:08:09
Messages: 865
Location: Lầu Xanh
Offline
|
|
boom_jt wrote:
Tất nhiên là mình có thể connect tới mysql server nhờ có tài khoản "lụm" được trong file config. Lúc trước boom vẫn nghĩ rằng trong trường hợp này, thì câu query sẽ được gửi tới cái remote mysql server kia, và nó phải được thực thi ở trên server đó. Do vậy các thao tác liên quan tới file (câu truy vấn kiểu như select load_file (...) ) nếu thực thì được thì cũng không phải là các file trên máy chủ mình đang cần khai thác mà là máy chủ chứa mysql kìa.
Tuy nhiên có vẻ như nhận định này đã sai, boom mới thử xong thì dường như kết quả trả về lại đúng là các file trên máy chủ mình cần khai thác. Điều này thì quả thật boom chưa hiểu, boom nghĩ rằng mysql server là thằng chịu trách nhiệm xử lý query chứ? Ai rõ về phần này chỉ cho boom với nha
Muốn biết thằng mysql nào chịu trách nhiệm xữ lý các query thì check trên server xem 2 con server đó cái nào đã được cài đặt mysql server .
boom_jt wrote:
/web/tomcat/conf/catalina.policy quy định policy cho Tomcat, còn /web/conf/php.ini chứa các thông số config cho PHP.
Cũng nói thêm (và đính chính) là file catalina.policy có quyền đọc (có lẽ lúc trước boom không để ý). Và boom để ý có dòng sau:
Như vậy là server này có các "món ăn bình dân" sau : Apache, Tomcat, PHP, Mysql . Tôi không hiểu ở chổ này những ứng dụng mà bro định Bypass Apache Tomcat's security policy thì đâu có liên quan gì đến thằng PHP đâu mà đem PHP vào đây !?
Tui đọc dòng này thì tui thấy chổ này nó nói File Permission cho tất cả các tập tin và thư mục trong thư mục document root của 1 tài khoản nào đó ví dụ như /home/giangho/webapps/WEB-INF/classes
Đây là tập tin gốc conf/catalina.policy
// These permissions are granted by default to all web applications
// In addition, a web application will be given a read FilePermission
// for all files and directories in its document root.
grant {
permission java.util.PropertyPermission "java.version", "read";
permission java.util.PropertyPermission "java.vendor", "read";
permission java.util.PropertyPermission "java.vendor.url", "read";
permission java.util.PropertyPermission "java.class.version", "read";
permission java.util.PropertyPermission "os.name", "read";
permission java.util.PropertyPermission "os.version", "read";
permission java.util.PropertyPermission "os.arch", "read";
permission java.util.PropertyPermission "file.separator", "read";
permission java.util.PropertyPermission "path.separator", "read";
permission java.util.PropertyPermission "line.separator", "read";
permission java.util.PropertyPermission "java.specification.version", "read";
permission java.util.PropertyPermission "java.specification.vendor", "read";
permission java.util.PropertyPermission "java.specification.name", "read";
permission java.util.PropertyPermission "java.vm.specification.version", "read";
permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
permission java.util.PropertyPermission "java.vm.specification.name", "read";
permission java.util.PropertyPermission "java.vm.version", "read";
permission java.util.PropertyPermission "java.vm.vendor", "read";
permission java.util.PropertyPermission "java.vm.name", "read";
permission java.io.FilePermission "jndi:/WEB-INF/-", "read";
};
Còn sau khi tôi đọc xong thì tui điều chỉnh
permission java.io.FilePermission "${catalina.home}/webapps/jse/WEB-INF/storage/*", "write";
boom_jt wrote:
Tuy nhiên, cũng xin nói thêm là server đã có firewall (or đứng sau router), vì thế bind port có thể thành công nhưng không thể kết nối tới được, và cũng ko back connect được luôn - cái này có lẽ do firewall. Sau khi thưc hiện back connect, boom thử netstat thì thấy báo ở dòng tương ứng là SYN_SENT.
TCP sử dụng phương thức "bắt cá 3 tay" trạng thái SYN_SENT là đã gửi SYN và đang đợi ACK trạng thái này xuất hiện khi client đưa ra lệnh mở cổng chủ động (thay vì bị động như ở server) thì lúc đó nó đi vào trạng thái SYN_SENT
Mọi người cứ tiếp tục "trao đổi" |
|
|
|
|
|
|
|
Users currently in here |
1 Anonymous
|
|
Powered by JForum - Extended by HVAOnline
hvaonline.net | hvaforum.net | hvazone.net | hvanews.net | vnhacker.org
1999 - 2013 ©
v2012|0504|218|
|
|