最近这段时间在做关于代码审计方面的题目,这一次把做的题目的解析发出来,希望能够帮助到学习代码审计的人。
![](https://yqfile.alicdn.com/img_0d2f82587fba3edefba5a51cb30ef0d6.png)
这些题目我会全部上传解析过程哦!!!!
1:
![](https://yqfile.alicdn.com/img_c8c1be27167e89aaa5c85ee352c3322a.png)
解题思路:蒙蒙的我只有上网百度一下:
![](https://yqfile.alicdn.com/img_4417d7bdd61e922fc8bd5840706633eb.png)
看到这些就知道应该如何构造post了:就是这样的: ?shiyan=&flag=就会得到答案:
flag{bugku-dmsj-p2sm3N}
2:
![](https://yqfile.alicdn.com/img_3707f781004ac6c55cf093dfa60a6d54.png)
解题思路:看见这个strcmp比较字符串的代码审计,感觉很熟悉就是知道需要使用数组才能够得到最后的结果:那么在后面需要构造:?a[%20]=1
就能够得到最后的结果:Flag: flag{bugku_dmsj_912k}
3:
![](https://yqfile.alicdn.com/img_76a7869f95c3ac9b2bada00c906d825f.png)
解题思路:针对于小白,只能慢慢搜了,毕竟关于代码审计类型的题目做的并不多,只是知道遇到问题需要百度,这一题主要就是考eregi函数用法,以及urldecode二次编码问题:
eregi()函数在一个字符串搜索指定的模式的字符串。搜索不区分大小写。Eregi()可以特别有用的检查有效性字符串,如密码。可选的输入参数规则包含一个数组的所有匹配表达式,他们被正则表达式的括号分组。
下面是关于:urldecode的信息:
![](https://yqfile.alicdn.com/img_649ca542e122d93c4ab2f1c78b139e5b.png)
就是需要构造post就可以得到答案:利用了两次urldecode第一次是浏览器的解码第二次是函数的解码,所以我利用了里面的其中一个字母D编码第一次编码是%44,第二次编码是%2544 (这个部分可以不止使用D一个字母,可以使用其他的所有字母hackerDJ,只要将他们进行二次编码就好了
就是需要构造:?id=hacker%2544J
就会得到答案:
![](https://yqfile.alicdn.com/img_d93d3a7272331b9752ee73cdcf4ba7f0.png)
最后得到答案:flag{bugku__daimasj-1t2}
4:
![](https://yqfile.alicdn.com/img_ee4d35bc539a7587be04b29341a136a6.png)
解题思路:这一题主要是考察关于md5加密问题;首先参照关于md5的资料:显然我们要构造的
Password与username的值不相等,但是它们的md5的值相等才能得到flag,因为使用数组可以绕过,MD5(数组)会返回null,这样就可以实现username!=password,但是MD5(username)==MD5(password)
所以构造:?username[ ]=1&password[ ]=就会得到正确答案:
![](https://yqfile.alicdn.com/img_fb1861419c5d9bc5260a6f3b1f89c6bd.png)
最后得到答案:Flag: flag{bugk1u-ad8-3dsa-2}
5:
![](https://yqfile.alicdn.com/img_6468db3f89ace9df70f713a50190a182.png)
解题思路:这一题代码审计题目还是可以看的懂的,首先需要知道errg函数是正则表达式的含义,这一题就是需要正则表达(大小写英文字母,以及0-9的数字),当然还需要了解strpos函数的意义:
![](https://yqfile.alicdn.com/img_a21ba2c17b26b41d117ed5c0a371f258.png)
只要构造一个类似于:?password[ ]=4就会得到答案:
Flag: flag{ctf-bugku-ad-2131212}
6:
![](https://yqfile.alicdn.com/img_7098dbbeee6c5c617787f7d73dfaa19c.png)
解题思路:首先应该知道关于is_numeric的含义:
![](https://yqfile.alicdn.com/img_89a19e3a3a7228e85d67ea3afb1b4d41.png)
注意这个函数是检测数字以及数字字符串的,所以在传入信息的时候主要输入的哪个数字大于题目的要求之后,然后再加上非数字的符号就会得到答案:
![](https://yqfile.alicdn.com/img_63f848d0b45037a83fdffd7f217e2681.png)
最后得到答案:flag{bugku_null_numeric}
其它的内容将会再下一篇博文中发出,请各位耐心等待!!
您可以考虑给博主来个小小的打赏以资鼓励,您的肯定将是我最大的动力。
关于作者:潜心于网络安全学习。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!