sqli-labs靶场 1-10
title: sqli-labs靶场1-10
tags: sql-labs
abbrlink: 9e3b89d1
date: 2022-07-26 16:09:31
参考crow: https://github.com/crow821/crowsec
MySQL连接的当前用户名和主机名:
MySQL连接的当前用户名和主机名:
MySQL帐户的用户名和主机名:
MySQL查看当前数据库
MySQL查看当前数据版本
MySQL查看安装路径
当前操作系统
属于同一组,将属于同一组的列显示出来
A~B
常用命令
查库:
查表:
查列:
查字段:
Less-1 - Less-4
注入
- 查看是否有注入
- 查看有多少列
- 查看哪些数据可以回显
- 查看当前数据库
- 查看数据库security
- 查表
- 查询列信息
- 查询一个账号和密码
Less-5 bool盲注
基础知识
- left()函数: left(database(),1)='s'
left(a,b)从左侧截取a的前b位,正确则返回1,错误则返回0
- regexp函数:select user() regexp 'r'
user()的结果是root,regexp为匹配root的正则表达式
- like函数: select user() like 'ro%
匹配与regexp相似。
- substr(a,b,c) elect substr() XXXX
substr(a,b,c)从位置b开始,截取a字符串c位长度
- ascii()
将某个字符串转化为ascii值
- chr(数字) 或者是ord('字母')
使用python中的两个函数可以判断当前的ascii值是多少
- 没有错误提示 也没有回显 但是输入错误的话页面会有反应 也就是说 只有 true 和false
- 查看是否有注入
- 查看有多少列
- 判断第一位是否是s,然后使用bp进行爆破处理:
通过返回的长度来确定第二位是多少,最后确定为e,依次类推进行测试。
- 或者是使用if来进行判断测试:
此时是没有返回的(这种方法是错误的)
此时返回 you are in…….代表执行成功。
Less-6 bool盲注(流程同 Less-5)
完整注入流程:
- 通过二分法猜解得到所有的库,红色为可变参数。
- 再次通过二分法可猜解得到security下的所有表。其中,红色为可变参数。
- 通过二分法可猜解users内的字段,其中红色为可变参数。
- 继续猜解即可得到字段内的值。
Less-7
基础知识
- 一句话木马:php版本:
- load_file() 读取本地文件
- into outfile 写文件
文件位置: C:\inetpub\target\sqlilabs
- 注意事项:
\\
完整注入流程:
- 报错
- 查看有多少列
- 将一句话木马写入其中
- 使用中国菜刀访问即可!
Less-8
Less-8 bool盲注
- 判断此时存在注入漏洞
- 当3改为4的时候,you are in….消失,说明存在三列。
- 猜出来当前第一位是s
或者是使用:
- 先通过大于号或者小于号来判断数据库的第一个字母是哪一个
也可以使用
此时可以验证数据库中第五个数据库的第一个字母是s
5. 判断security数据库中的第4个表中的数据的第一位是否大于11
也可以使用
验证数据库中第4个表中的数据的第一位的第一个字母的ascii码是否是117,也就是 u
- 同理,进行判断表中的字段,然后进行判断。可以得到username,password;
- 同理,进行判断,最后再使用password进行判断。
- 因为猜解速度较慢,可以配合burpsuite或者是sqlmap的脚本来使用。
Less-8 时间盲注
- IF(condition,A,B)如果条件condition为true,则执行语句A,否则执行B
- 使用延迟的方法判断是否存在注入漏洞。当然判断是否存在注入漏洞的方法很多。
- 当为8的时候很快加载,而为其他值得时候加载较慢(5s左右),那就说明此时数据库的长度就是8(security)
- 如果当前数据库的第一个字母的ascii值大于113的时候,会立刻返回结果,否则执行5s。
- 同理判断数据库中的第5个数据库的第一位的ascii的值是不是大于112(实际中是115),如果是的则速度返回,否则延时5s返回结果。
- 其余步骤与法一基本类似,可以采用burpsuite或者是sql盲注脚本使用。
Less-9
- 当使用order by的时候,此时无论如何都是回显you are in….所以无法使用order by进行判断。
- 当存在注入漏洞时,可以使用延迟注入进行判断,此时若存在漏洞,则睡眠5s之后再返回结果。
- 通过返回时间进行判断,此时如果数据库长度为8,则可以较快返回。
- 使用less-8中同样的方法进行判断即可!
- 因为盲注属于猜解,推荐使用脚本进行操作。
Less-10
1.只是将less-9中的单引号换成了双引号,其余的均相同。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 putdown.top