Web渗透测试可以从以下几个方面考虑:
  1.SQL Injection(SQL注入)
  (1)如何进行SQL注入测试?
  首先找到带有参数传递的URL页面,如 搜索页面,登录页面,提交评论页面等等.
  注1:对 于未明显标识在URL中传递参数的,可以通过查看HTML源代码中的"FORM"标签来辨别是否还有参数传递.在<FORM> 和</FORM>的标签中间的每一个参数传递都有可能被利用.
  <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>
  </form>
  注 2:当你找不到有输入行为的页面时,可以尝试找一些带有某些参数的特殊的URL,如HTTP://DOMAIN/INDEX.ASP?ID=10
  其 次,在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
  注2:为什么是OR, 以及',――是特殊的字符呢?
  例子:在登录时进行身份验证时,通常使用如下语句来进行验证: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',
  '与admin前面的'组成了一个查 询条件,即username='admin',接下来的语句将按下一个查询条件来执行
  接下来是"--"查询条件,“--”是忽略或注释,上 述通过连接符注释掉后面的密码验证(注:对ACCESS数据库无 效).
  后,验证是否能入侵成功或是出错的信息是否包含关于数据库服务器 的相关信息;如果 能说明存在SQL安 全漏洞.
  试想,如果网站存在SQL注入的危险,对于有经验的恶意用户还可能猜出数据库表和表结构,并对数据库表进行增删改的操 作,这样造成的后果是非常严重的.
  (2)如何预防SQL注入?
  从应用程序的角度来讲,我们要做以下三项工作:
  转义敏感字符及字符串(SQL的敏感字符包括“exec”,”xp_”,”sp_”,”declare”,”Union”,”cmd”,”+”,”//”,”..”,”;”,”‘”,”--”,”%”,”0x”,”><=!-*/()|”,和”空格”).