Bugku -代码审计

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

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

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的资料:http://www.w3school.com.cn/php/func_string_md5.asp显然我们要构造的

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}

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

如果有什么不明白的地方,留言或者加我!!! 
我很菜,所以我会努力的! 
努力是因为不想让在乎的人失望! 
博主整理不易,如果喜欢推荐关注一下博主哦!

博主喜欢广交好友下面是我的联系方式: 
QQ:1263030049 
加好友前请注明原因谢谢!

猜你喜欢

转载自www.cnblogs.com/lxz-1263030049/p/9117085.html