码迷,mamicode.com
首页 > 数据库 > 详细

SQL注入(三)

时间:2019-10-30 22:39:30      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:函数   chart   解析   mod   exce   res   注入   后端   过滤   

宽字节注入
mysql_query("SET NAMES ‘gbk‘");//设置字符集编码,对数据库执行之后的结果进行某种编码(gbk)然后传递给用户,返回gdk编码的结果
mysql_set_charset("GBK");//设置字符集编码,规定当与数据库服务器进行数据传送时要使用的默认字符集
mysql_real_escape_string()对参数进行过滤转移,其类似功能的函数
 
GBK编码,针对汉字的一种编码方式,使用两个字节编码一个汉字
漏洞形成原理:对数据库执行之后的结果进行gbk编码+执行过滤函数对用户提交的数据进行过滤=宽字节
测试步骤:
step1:访问站点../gbksql/01/?id=1‘查看返回结果:select* from news where tid=‘1\",执行结果不受影响
step2:../?id=1%df(为啥使用df?高位在81以后就能用,81~fe)1%df--->1%df-->
step3:测试sql注入的位置
 
PDO宽字节注入:
pdo:连接数据库-》设置模板
$id=addslashes($id);
    $conn=new PDO("mysql:host=localhost;dbname=dvwa;chartset=utf-8;port=3306","root","root") or die("error");
    $conn->exec("set names ‘GBK‘");
$result_sql=$conn->prepare("select * from users where user_id=?");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
二次编码注入:浏览器会对from提交的数据处理之后进行urldecode
1%25%27
进入后端php第一次解析为1%27
处理数据
之后因为程序编写的问题又进行了urldecode
变成1‘

SQL注入(三)

标签:函数   chart   解析   mod   exce   res   注入   后端   过滤   

原文地址:https://www.cnblogs.com/yyhfirstblog/p/11768211.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!