Bugku-代码审计(数字验证正则绕过)

各位小伙伴,我把Bugku上面的关于代码审计类型的WP为两部分,主要是为了各位小伙伴的阅读质量

希望你们能够多多包涵哦!!!!

 

7:

 

 

解题思路:首先应该了解一个关于php弱类型的知识:

 

 

再继续阅读信息就会发现:、

第一处if ($_GET['name'] == $_GET['password'])判断时两数组确实是不同的,

但在第二处else if (sha1($_GET['name']) === sha1($_GET['password']))判断时由于sha1()函数无法处理数组类型,将报错并返回falsefalse === false条件成立,这样就绕过了sha()函数获得flag,这个时候需要构造类似于:http://120.24.86.145:9009/7.php?name[%20]=1&password[%20]=2

就会得到答案:Flag: flag{bugku--daimasj-a2}

8:

 

 

解题思路:关于这一题最主要的是需要知道:md5('240610708') == md5('QNKCDZO')

当然前提是要明白PHP在处理哈希字符串时,会利用”!=”或”==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以”0E”开头的,那么PHP将会认为他们相同,都是0。就可以得到答案,那么就需要构造PAYLOAD:http://120.24.86.145:9009/13.php?a=240610708
就会得到答案:flag{bugku-dmsj-am9ls}

9:

 

 

解题思路:针对于这个问题首先需要查询ord()函数,就会明白题目的含义:

ord() 函数返回字符串的首个字符的 ASCII 值。

使用在线十六进制转化工具(https://tool.lu/hexconvert/)就会得到:

 

 

得到最后转化的十六进制,需要在其前面加上0x才能够表明是十六进制
因此最后的payload:http://120.24.86.145:9009/20.php?password=0xdeadc0de

最后得到答案:flag{Bugku-admin-ctfdaimash}

10:

 

 

解题思路:首先使需要了解关于正则表达式的匹配问题,然后就是需要使用数组进行绕过

解决方案一:使用数组进行绕过:

Payload:http://120.24.86.145:9009/5.php?password[ ]=1243(这个部分加不加并不影响最终结果;

解决方案二:使用ereg()null截断漏洞,再使用科学计数法来构造else if (strlen($_GET['password']) < 8 && $_GET['password'] > 9999999)这个条件,即1000000000用1e9来表示,在加上-来构造满足(strpos ($_GET['password'], '-') !== FALSE,于是就可以构造:
payload:http://120.24.86.145:9009/5.php?password=1e9%00*-*

这一个构造可以根据一步一步的调试进行,最终能够得到结果:例如:

 

 

最后得到结果:Flag: flag{bugku-dm-sj-a12JH8}

11:

 

 

解题思路:这一题直接使用数组进行绕过就可以得到答案:

Payload:http://120.24.86.145:9009/15.php?ctf[ ]=#biubiubiu

当然也是可以这样的(http://120.24.86.145:9009/15.php?ctf[%20]=)

最后得到结果:

 

 

最后得到答案:Flag: flag{Bugku-D-M-S-J572}

12:

 

 

解题思路:构造那么久就是没有思路,看了一些其他人的解析构造,好像说的都是一样,都没有解释为什么直接使用插件HackBar就可以得到结果,大多数人都是直接写上使用这个插件就会得到答案:

 

 

关于火狐浏览器中的Hackbar插件,我会收集一些资料,整理好之后上传到博文中。

希望各位能够多多包涵(QAQ)

 

您可以考虑给博主来个小小的打赏以资鼓励,您的肯定将是我最大的动力。

微信 支付宝
作者: 落花四月
关于作者:潜心于网络安全学习。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值