首页 > Web开发 > 详细

代码审计_urldecode二次编码绕过

时间:2019-02-15 19:56:10      阅读:263      评论:0      收藏:0      [点我收藏+]

题目链接:https://ctf.bugku.com/challenges

题解:

打开题目

技术分享图片

得到一段PHP代码

技术分享图片

代码中的相关知识点链接:

eregi函数:http://www.kuqin.com/php5_doc/function.eregi.html

urldecode:是一种URL编码函数

根据代码的意思,首先看没有经过urldecode编码的字符串 $_GET[id] 是否匹配字符串 hackerDJ ,从代码意思看,想要得到flag不应该匹配,但是经过urldecode编码后应匹配字符串 hackerDJ ;因此利用了两次urldecode第一次是浏览器的解码、第二次是函数的解码,所以我利用字符串 hackerDJ 中随便一个字母进行两重编码即可。

例如:选择最后一个字母“J”,进行双重编码

第一次:字母“J”对应的URL编码为:%4A  【其对照表链接为:https://pan.baidu.com/s/1diPXvMA-f3rGAZSdzYHGPg

技术分享图片

第二次:再经过urldecode编码【urldecode在线编码链接:http://www.convertstring.com/zh_CN/EncodeDecode/UrlEncode

技术分享图片

即最后得到:字符“J” 经过二次编码得到 %254A ;因此构造 payload 为:

?id=hackerD%254A

提交得到flag

技术分享图片

同样的道理,选取其他字符也是一样的效果,就不再这里一一举例了。

即flag为:flag{bugku__daimasj-1t2}

代码审计_urldecode二次编码绕过

原文:https://www.cnblogs.com/Gzu_zb/p/10372978.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!