sqli-0x1WEB 未解决

分数: 0 金币: 0
所属赛事: HackINI 2021
题目作者: 未知
一  血: Aman
一血奖励: 0金币
解  决: 2910
提  示: shellmates{********}
描  述:

SQL injections are still a problem yes, even in 2021.
Bypass the login mechanism and get access to the admin area.

评论
lzq2000 2年前

查询一个不存在的账号,拼接union select,将自定义的密码和盐生成的加密字符串注入,覆盖密码查询结果,使用自定义的密码即可通过密码校验,post发送: user=a'union select 1,'8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92$456'--+&pass=123

回复 19
脆脆sha_ 1年前

@星夜见月 源码中有正则匹配,允许单引号在字母中间的输入

回复 0

星夜见月 2年前

为什么a'u这个不会被过滤出来

回复 0

lzq2000 2年前

@Am0s 联合查询其实本质就是手工增加了一个结果集,跟从数据库中真正查询出来的结果是一样的效果。这里因为数据库中存储的是加过密的信息,所以我们得构造一下加密结果。

回复 3

lzq2000 2年前

@2957632449 是的,联合查询其实本质就是手工增加了一个结果集,结果就是对应字段的值!

回复 2

2957632449 2年前

佬 这边1,'8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92$456' 这一串 会自动新建一个结果集是吗 然后'8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92$456'这边代表的是字段password里的值对吗

回复 0

TwTsaltfish 2年前

@Am0s 3、源码中验证sha256(明文密码$pass+$result["password"]中$后的字符串【$salt】)=$result["password"]中$前的值

回复 0

TwTsaltfish 2年前

@Am0s 1、猜测原先就是两个字段、账号密码,正常情况下搜到的就是这两个字段$result["user"],$result["password"];2、查询一个不存在的账号,没有union会是空的,union查询得到的第二个值(这里如果有多个无用字段要测试哪个是密码)会作为$result["password"]进入后面的逻辑;3、源码中验证sha2

回复 1

Am0s 2年前

大佬能讲解一下原理吗

回复 0

JJhello 2年前

不太懂,来个大佬讲解一下

回复 2

yituoshi 2年前

Half the truth is often a big lie:Welcome back admin! Have a flag: shellmates{c0ngr4tul4t10ns_U_d1d_1t!!_fe4cd84591

回复 0

chaoge 2年前

shellmates{c0ngr4tul4t10ns_U_d1d_1t!!_fe4cd84591ea}

回复 0

justsosoloveyou 2年前

先绕过用户名的正则过滤。查询一个不存在的账号,拼接union select,将自定义的密码和盐生成的加密字符串注入,覆盖密码查询结果,使用自定义的密码即可通过密码校验。

回复 10
shall0w 1年前

是说union之前的账号不存在还是select后的账号不存在?试了一下select后的账号只能是数字?这是什么原因呢

回复 0

yituoshi 2年前

感谢高手指导

回复 1

xinmin666 2年前

passwd:79e91f1ae35ac5854642191dd8926b5afe9359cbec1d224e0b1ee53f8955638b salt:7640ced2 可惜走错了路

回复 0

Am0s 2年前

网站源码里面有好东西

回复 2

xiaobai568 3年前

以为是布尔盲注,靠着user=admin'and hex(substr((select password from users where username='admin'),§3§,1))='§73§'--+&pass=123爆破出了password是79e91f1ae35ac5854642191dd8926b5afe9359cbec1d224e0b1ee53f8955638b$7640

回复 14
yuans 1年前

@xiaobai568 感谢啦

回复 1

xiaobai568 1年前

@yuans 所以要换思路了/笑

回复 1

yuans 1年前

79e91f1ae35ac5854642191dd8926b5afe9359cbec1d224e0b1ee53f8955638b$7640ced2

回复 1

yuans 1年前

即使爆破出来之后,sha256没法逆向解密,仍然不能得到flag。

回复 0

yanghuaihua 1年前

那也很有实力了

回复 0

0safe 3年前

test

回复 0

WriteUp

image
a2cai

2 金币

评分(35)

解题动态

akkofizzy 攻破了该题 9小时前
wohinsy 攻破了该题 17小时前
dawnan 攻破了该题 1天前
扫地老林 攻破了该题 1天前
sawm 攻破了该题 2天前
shellbei 攻破了该题 3天前
懂点Tech 攻破了该题 3天前
vb嘎嘎 攻破了该题 4天前
uuoue 攻破了该题 4天前
Gove 攻破了该题 5天前
liuliuliu666kkk 攻破了该题 5天前
wrcoco 攻破了该题 5天前
88788 攻破了该题 6天前
fx8952060 攻破了该题 6天前
zhuzhu90 攻破了该题 6天前
晨曦静夜 攻破了该题 6天前
星宇Sec 攻破了该题 7天前
yt123 攻破了该题 7天前
phaso 攻破了该题 8天前
Zfc 攻破了该题 8天前
问题反馈