标签:web 题目 md51 8.8 flag CTF 新手 php md5
一、绕开口令长度限制
题目:
1.F12查看源码,发现有长度限制
2.方法1:使用hackbar或burpsuite将text=qingdaoshizipeixun post过去绕开长度检测。
方法2:直接删除该字段
3.得到flag
二、不在IP限制范围内
题目:
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
三、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
标签:web,题目,md51,8.8,flag,CTF,新手,php,md5 来源: https://www.cnblogs.com/garywayne/p/15823619.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。