CTF初学笔记-web新手题目

一、绕开口令长度限制

题目:

CTF初学笔记-web新手题目

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

CTF初学笔记-web新手题目

 

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

   CTF初学笔记-web新手题目

CTF初学笔记-web新手题目

  方法2:直接删除该字段

  CTF初学笔记-web新手题目

3.得到flag

 

二、不在IP限制范围内

题目:

CTF初学笔记-web新手题目

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

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

CTF初学笔记-web新手题目

 

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

CTF初学笔记-web新手题目

 

 

3.成功获取flag

 

三、MD5绕过

题目:

CTF初学笔记-web新手题目

 

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

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

2.获得flag

 

四、MD5碰撞

题目:

CTF初学笔记-web新手题目

 

 

分析:首先可以看到变量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

上一篇:CTF-PWN笔记(一)-- 栈溢出 之 基础ROP


下一篇:CTF MISC图片隐写