sqli-0x1WEB 未解决

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

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

评论
lzq2000 2年前

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

回复 6
黑化佩琪 1年前

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

回复 0

xzs297995 2年前

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

回复 0

在浅水中溺水么? 2年前

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

以为是布尔盲注,靠着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 2年前

test

回复 0

WriteUp

image
a2cai

2 金币

评分(31)

解题动态

hardees90 攻破了该题 15小时前
Decay_念 攻破了该题 1天前
何以书 攻破了该题 1天前
13615049106 攻破了该题 1天前
胜天3号 攻破了该题 3天前
hxwzh 攻破了该题 5天前
LiEasy 攻破了该题 5天前
fanliao 攻破了该题 6天前
顶风作案 攻破了该题 6天前
ggtom 攻破了该题 6天前
Aria@ 攻破了该题 6天前
胰梅子子 攻破了该题 6天前
时意 攻破了该题 6天前
politely 攻破了该题 7天前
Hydron 攻破了该题 7天前
asdliuyan 攻破了该题 7天前
KDB 攻破了该题 8天前
寒醨 攻破了该题 8天前
lijingxin02 攻破了该题 9天前
18054131721 攻破了该题 9天前
问题反馈