博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Bugku -代码审计(urldecode二次编码绕过)
阅读量:7072 次
发布时间:2019-06-28

本文共 1511 字,大约阅读时间需要 5 分钟。

最近这段时间在做关于代码审计方面的题目,这一次把做的题目的解析发出来,希望能够帮助到学习代码审计的人。

 

这些题目我会全部上传解析过程哦!!!!

1:

 

 

解题思路:蒙蒙的我只有上网百度一下:

 

 

看到这些就知道应该如何构造post了:就是这样的: ?shiyan=&flag=就会得到答案:

flag{bugku-dmsj-p2sm3N}

2:

 

 

解题思路:看见这个strcmp比较字符串的代码审计,感觉很熟悉就是知道需要使用数组才能够得到最后的结果:那么在后面需要构造:?a[%20]=1

就能够得到最后的结果:Flag: flag{bugku_dmsj_912k}

3:

 

 

解题思路:针对于小白,只能慢慢搜了,毕竟关于代码审计类型的题目做的并不多,只是知道遇到问题需要百度,这一题主要就是考eregi函数用法,以及urldecode二次编码问题:

eregi()函数在一个字符串搜索指定的模式的字符串。搜索不区分大小写。Eregi()可以特别有用的检查有效性字符串,如密码。可选的输入参数规则包含一个数组的所有匹配表达式,他们被正则表达式的括号分组。 

下面是关于:urldecode的信息:

 

就是需要构造post就可以得到答案:利用了两次urldecode第一次是浏览器的解码第二次是函数的解码,所以我利用了里面的其中一个字母D编码第一次编码是%44,第二次编码是%2544 (这个部分可以不止使用D一个字母,可以使用其他的所有字母hackerDJ,只要将他们进行二次编码就好了

 

就是需要构造:?id=hacker%2544J

就会得到答案:

 

 

最后得到答案:flag{bugku__daimasj-1t2}

4:

 

 

解题思路:这一题主要是考察关于md5加密问题;首先参照关于md5的资料:显然我们要构造的

Password与username的值不相等,但是它们的md5的值相等才能得到flag,因为使用数组可以绕过,MD5(数组)会返回null,这样就可以实现username!=password,但是MD5(username)==MD5(password)

所以构造:?username[ ]=1&password[ ]=就会得到正确答案:

 

 

最后得到答案:Flag: flag{bugk1u-ad8-3dsa-2}

5:

 

 

解题思路:这一题代码审计题目还是可以看的懂的,首先需要知道errg函数是正则表达式的含义,这一题就是需要正则表达(大小写英文字母,以及0-9的数字),当然还需要了解strpos函数的意义:

 

 

只要构造一个类似于:?password[ ]=4就会得到答案:

Flag: flag{ctf-bugku-ad-2131212}

6:

 

 

解题思路:首先应该知道关于is_numeric的含义:

 

 

注意这个函数是检测数字以及数字字符串的,所以在传入信息的时候主要输入的哪个数字大于题目的要求之后,然后再加上非数字的符号就会得到答案:

 

 

最后得到答案:flag{bugku_null_numeric}

 其它的内容将会再下一篇博文中发出,请各位耐心等待!!

 

您可以考虑给博主来个小小的打赏以资鼓励,您的肯定将是我最大的动力。
微信
支付宝
作者:
出处:
关于作者:潜心于网络安全学习。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!
你可能感兴趣的文章
在Linux系统中安装Subversion版本控制
查看>>
云计算的一匹黑马——SAP
查看>>
利用SCVMM 2012 R2来管理Azure虚拟机
查看>>
siri为什么比谷歌搜索“笨”?
查看>>
数据为本,洞悉安全
查看>>
学习iBatis时的一个苦逼经历
查看>>
Python 面试中 8 个必考问题
查看>>
Android游戏开发中使用Libgdx引擎遇到的问题及解决办法汇总
查看>>
C++文件的批处理
查看>>
CPU-bound(计算密集型) 和I/O bound(I/O密集型)
查看>>
线性时间 筛素数,求前n个数的欧拉函数值,求前n个数的约数个数
查看>>
Spring 中JDKProxy和CGlibProxy的区别
查看>>
在Map 3D显示管理器中更改当前地图的名字
查看>>
通俗解释WIndows上的CRITICAL SECTION
查看>>
下载文件使用缓存(一次性读取到内存),优化性能(注意静态对象修改需要加锁)...
查看>>
组织行为学对项目管理的意义(2):人格的大五模型
查看>>
从程序员到项目经理(16):原来一切问题都是可以解决的【转载】
查看>>
当kfreebsd 用户遇见openSUSE系统
查看>>
Struts2自己定义拦截器实例—登陆权限验证
查看>>
调用webservice查询手机号码归属地信息
查看>>