ctf wed login.php,ctf之WEB之后台登录

格式:flag:{xxx}

解题链接: http://ctf5.shiyanbar.com/web/houtai/ffifdyop.php

打开链接:

3515021

查看源码,发现一段被注释的代码,有用:

3515021

仔细分析这一句:

$sql = "SELECT * FROM admin WHERE username = 'admin' and password = '".md5($password,true)."'";

其实这一句我也不太会,通过别人的wp和百度PHP的md5(string,raw)函数:

3515021

那这个语句的含义就是将$password的值进行32位md5值加密后,再进行16进制和字符串的转换。(从这里开始我就不太明白)。这道题的思路应该是构造一个'or'xxx'的密码,只要后面的字符串为真即可。那么可以根据32位16进制的字符串来查找‘or’对应的16进制是276f7227(为什么我用脚本运行出来的or对应的16进制是6f72???欢迎评论解答),所以我们的目标就是要找一个字符串取32位16进制的md5值里带有276f7227这个字段的,在276f7227这个字段后面紧跟一个数字(除了0)1-9,对应的asc码值是49-57,转化为16进制就是31-39,也就是含有276f7227+(31-39)这个字段,就可以满足要求。而当md5后的hex转换成字符串后,如果包含 ‘or’ 这样的字符串,那整个sql变成:

SELECT * FROM admin WHERE pass = ''or'6'

那如何获取这个字符串,我们不如回过头来看看刚才页面的url:view-source:http://ctf5.shiyanbar.com/web/houtai/ffifdyop.php,这里面有一个ffifdyop的字符,276f722736c95d99e921722cf9ed621c正是ffifdyop的md5转义。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值