sql注入攻击的总体思路
发现sql注入位置;判断后台数据库类型;确定xp_cmdshell可执行情况发现web虚拟目录上传asp,php,jsp木马;得到管理员权限;
php整站防注入程序实例代码如下:
$v) { $array[$k] = sec($v); } //开源代码phprm.com } else if (is_string($array)) { //使用addslashes函数来处理 $array = addslashes($array); } else if (is_numeric($array)) { $array = intval($array); } return $array;}?>
1、整型参数的判断
当输入的参数yy为整型时,通常abc.asp中sql语句原貌大致如下:
select * from 表名 where 字段=yy,所以可以用以下步骤测试sql注入是否存在。
①http://xxx.xxx.xxx/abc.asp?p=yy'(附加一个单引号),此时abc.asp中的sql语句变成了
select * from 表名 where 字段=yy',abc.asp运行异常;
②http://xxx.xxx.xxx/abc.asp?p=yy and 1=1,abc.asp运行正常,而且与http://xxx.xxx.xxx/abc.asp?p=yy运行结果相同;
③http://xxx.xxx.xxx/abc.asp?p=yy and 1=2,abc.asp运行异常;
如果以上三步全面满足,abc.asp中一定存在sql注入漏洞.
综合上面我们写一个整型过滤函数,代码如下:
当输入的参数yy为字符串时,通常abc.asp中sql语句原貌大致如下:
select * from 表名 where 字段='yy',所以可以用以下步骤测试sql注入是否存在。
①http://xxx.xxx.xxx/abc.asp?p=yy'(附加一个单引号),此时abc.asp中的sql语句变成了
select * from 表名 where 字段=yy',abc.asp运行异常;
②http://xxx.xxx.xxx/abc.asp?p=yy&;nb ... 39;1'='1',abc.asp运行正常,而且与http://xxx.xxx.xxx/abc.asp?p=yy运行结果相同;
③http://xxx.xxx.xxx/abc.asp?p=yy&;nb ... 39;1'='2',abc.asp运行异常;
如果以上三步全面满足,abc.asp中一定存在sql注入漏洞,代码如下:
$v) { $array[$k] = stripslashes_array($v); } } else if (is_string($array)) { $array = stripslashes($array); } return $array;}?>
好了文章介绍到的防注入也算是比较全面的,大家可以测试或更出更好的方法.
本文地址:
转载随意,但请附上文章地址:-)
