sqli-0x1WEB 未解决

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

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

评论
波光摇曳 2年前

shellmates{c0ngr4tul4t10ns_U_d1d_1t!!_fe4cd84591ea}

回复 0

lzq2000 2年前

<?php echo hash(“sha256”, “123”.“456”);?> 得到 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92 123是口令,456是盐

回复 6
黑化佩琪 1年前

佬,这个属于sql注入哪方面的知识,我之前没听说过你的解法

回复 0

xzs297995 1年前

@234722457 2a8610aefdd0028c6bf074dd18721c0ef8bc43241cc7a653d7aedf2036bdf6b3$654应该是这个 而且密码是987

回复 0

在浅水中溺水么? 1年前

@234722457 987654要换成2a8610aefdd0028c6bf074dd18721c0ef8bc43241cc7a653d7aedf2036bdf6b3

回复 0

234722457 2年前

大佬,不用 123456 用 987654 为什么失败啊

回复 0

lzq2000 2年前

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

回复 19
脆脆sha_ 1年前

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

回复 0

星夜见月 1年前

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

回复 0

lzq2000 1年前

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

回复 3

lzq2000 1年前

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

回复 2

2957632449 1年前

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

回复 0

TwTsaltfish 1年前

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

回复 0

TwTsaltfish 1年前

@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 2年前

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

回复 14
yuans 9月前

@xiaobai568 感谢啦

回复 1

xiaobai568 9月前

@yuans 所以要换思路了/笑

回复 1

yuans 9月前

79e91f1ae35ac5854642191dd8926b5afe9359cbec1d224e0b1ee53f8955638b$7640ced2

回复 1

yuans 9月前

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

回复 0

yanghuaihua 10月前

那也很有实力了

回复 0

WriteUp

image
a2cai

2 金币

评分(28)

解题动态

李逍遥逛霍格沃茨 攻破了该题 12小时前
zerogoctf 攻破了该题 1天前
yyt030 攻破了该题 2天前
Icey艾希 攻破了该题 3天前
出题人我会一直让你等着 攻破了该题 6天前
Fengyu3321 攻破了该题 6天前
意料之中是戏 攻破了该题 7天前
Tim.Drake 攻破了该题 9天前
testyu 攻破了该题 9天前
Neuro 攻破了该题 10天前
jhgtx 攻破了该题 11天前
xuyp 攻破了该题 12天前
chrisslyy 攻破了该题 12天前
lhfchym 攻破了该题 14天前
暴躁鱼窝 攻破了该题 14天前
13675095331 攻破了该题 14天前
wes 攻破了该题 15天前
linxi789654 攻破了该题 17天前
71朵带刺玫瑰 攻破了该题 17天前
pigbigstrong 攻破了该题 17天前
问题反馈