微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CTF初学笔记-web新手题目

@H_502_1@一、绕开口令长度限制

题目:

1.F12查看源码,发现有长度限制

 

2.方法1:使用hackbar或burpsuite将text=qingdaoshizipeixun post过去绕开长度检测。

   

  方法2:直接删除该字段

  

3.得到flag

 

@H_502_1@二、不在IP限制范围内

题目:

@H_502_1@

1.分析题目,发现其要求访问ip限制是8.8.8.8,因此考虑转发ip

2.打开burpsuite,找到该包的http头,在里面add X-FORWARD-FOR,值为8.8.8.8,点击forward

 

或将该请求send to repeated ,在里面添加X-FORWARD-FOR:8.8.8.8,点击Go

 

 

3.成功获取flag

 

@H_502_1@三、MD5绕过

题目:

 

 原理:当md5函数对数组进行计算时,会出错返回0

1.在url后面,添加?a[]=1&b[]=2。

2.获得flag

 

四、MD5碰撞

题目:

 

 

分析:首先可以看到变量md51的值是经过md5加密的字符串QNKCDZO,经过md5加密后得到0e830400451993494058024219903391。之后get到变量a,分析源代码可知,如果a的值不为QNKCDZO,并且md5的值也为0e830400451993494058024219903391,则会输出flag,但对于md5来说,这种情况是不存在的。再看源码,我们发现判断md51和md52是否相等的时候,使用了$md51 == %md52,这里使用的是 == (PHP中为松散比较)而不是 ===(PHP中为严格比较),也就是说md51和md52不需要完全相等。【PHP的松散比较可参考https://blog.csdn.net/baidu_41871794/article/details/83750615】

关于PHP的一点拓展:一个数字和一个字符串进行比较,PHP会把字符串转换成数字再进行比较。PHP转换的规则是:若字符串以数字开头,则取开头数字作为转换结果,若无则输出0。因此QNKCDZO经过md5加密后的值0e830400451993494058024219903391就会被转换成0,因此,只需要找到其他经过md5加密开头是0的值就可以了。

1.将a的值加到?a=xxxx中。

2.成功获取flag

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐