美文网首页
Bugku------代码审计

Bugku------代码审计

作者: yangc随想 | 来源:发表于2018-02-26 00:37 被阅读0次

新银报到,多多指教,如有错误,多谢指出

extract变量覆盖

http://120.24.86.145:9009/1.php

第一次遇到extract()函数,百度一波含义(回到家后google被ban了):

@http://www.w3school.com.cn/php/func_array_extract.asp(来自W3school)

这样就简单了,直接构造payload:?shiyan=&flag,得到flag.

strcmp比较字符串

http://120.24.86.145:9009/6.php,题目崩了,flag是第一道题的

做的时候这道题目崩了,不过既然提到了strcmp,那么一定会用到数组绕过,随便丢了一个a[]进去,flag出来了???

urldecode二次编码绕过

http://120.24.86.145:9009/10.php

百度一波相关函数:

        eregi()函数在一个字符串搜索指定的模式的字符串。搜索不区分大小写。

    这样题目就简单了:

        第一关:id不能等于hackerDJ

        第二关:$_GET[id] = urldecode($_GET[id]);

        第三关 :if($_GET[id] == "hackerDJ")

    这道题很丰富了我的见识,让我感觉到一直以来我对GET函数了解的还不是很深刻。

    刚开始我做这道题的时候,直接将id赋值为hackerDJ的一次url编码,然后扑街了好久,最后多亏了题目的提示二次编码绕过将id赋值为hackerDJ的二次url编码,才得到flag,之后我又对题目进行了分析:

好题,好题。

md5()函数

http://120.24.86.145:9009/18.php

这道题就是使username!=password    &&    md5(username)===md5(password)

这样就很简单了,直接将240610708和QNKCDZO分别对上述赋值即可。

另外一种比较简单的方法就是md5()方法无法处理数组,直接构造payload:   

    username[]=1&password[]=2即可

数组返回NULL绕过

http://120.24.86.145:9009/19.php

遇到 了熟悉的ereg函数,直接用%00截断。

还有熟悉的strpos函数,直接用数组截断。

构造如下payload:http://120.24.86.145:9009/19.php?password[]=%00

sha()函数比较绕过

http://120.24.86.145:9009/7.php

比较长的一道题目,emmmmm。

需要对name和password进行赋值,而且需要他们的值不等,但是sha1的值相等。

sha1()函数无法处理数组,直接构造如下payload:

        http://120.24.86.145:9009/7.php?name[]=1&password[]=2

md5加密相等绕过

http://120.24.86.145:9009/13.php

这道题上面已经说过了,两个md5加密相等的值为240610708和QNKCDZO,这里需要将a赋值为240610708直接得到flag,payload:

    http://120.24.86.145:9009/13.php?a=240610708

十六进制与数字比较

http://120.24.86.145:9009/20.php

又是一道老长老长的题目,浏览一遍程序,最后需要number==temp是才可以输出flag ,然后我们可以对password赋值,根据题目提示,直接将password赋值为number的十六进制,然后flag出来了??(0x表示16进制)

payload:http://120.24.86.145:9009/20.php?password=0xdeadc0de

ereg正则%00截断

http://120.24.86.145:9009/5.php

题目需要对password赋值

    关卡1:if (ereg ("^[a-zA-Z0-9]+$", $_GET['password']) === FALSE)         %00截断

    关卡2:strlen($_GET['password']) < 8 && $_GET['password'] > 9999999

             可以用数组绕过,并且这里为&&,前面可以用数组截断(True),后面数组中有字母以及%,无法解析(true)。

    关卡3:strpos ($_GET['password'], '-') !== FALSE)     也可以用数组绕过

    最终我的payload:

                http://120.24.86.145:9009/5.php?password[]=1%00

strpos数组绕过

http://120.24.86.145:9009/15.php

对ctf进行赋值

    关卡1:if (@ereg ("^[1-9]+$", $_GET['ctf']) === FALSE)    用%00截断

    关卡2:else if (strpos ($_GET['ctf'], '#biubiubiu') !== FALSE) 用数组截断

    最终我的payload:

                http://120.24.86.145:9009/15.php?ctf[]=1%00

相关文章

  • Bugku------代码审计

    新银报到,多多指教,如有错误,多谢指出 extract变量覆盖 第一次遇到extract()函数,百度一波含义(回...

  • 【代码审计】PHP代码审计

    1. 概述 代码审核,是对应用程序源代码进行系统性检查的工作。它的目的是为了找到并且修复应用程序在开发阶段存在的一...

  • 代码审计

    代码审计工具 1、三款自动化代码审计工具教程2、seay源代码审计系统 PHP核心配置详解 注意PHP各个版本中配...

  • 🎐代码审计

    ?源代码审计分为白盒、黑盒、灰盒 白盒:拥有源代码进行审计黑盒:不知道源代码的情况下进行渗透审计灰盒:介于黑盒与白...

  • 2021-12-06-java代码审计初步认知

    一、代码审计的定义代码审计是一种以发现安全漏洞,程序错误和程序违规为目标的源代码分析技能。 二、代码审计需要的能力...

  • 代码审计初尝

    @(代码审计学习笔记) [TOC] 代码审计初尝 [图片上传失败...(image-f76662-15823837...

  • 代码审计思路之PHP代码审计

    00×0 前言 最近也是边挖src边审计代码,总结下最近的php代码审计的一些思路,我一般按照顺序往下做,限于能力...

  • 代码审计从入门到放弃(三) & phplimit

    前言 接着前面的代码审计从入门到放弃(一) & function、代码审计从入门到放弃(二) & pcrewaf ...

  • [代码审计] XIAO CMS审计

    XIAO CMS审计 翻安全客的时候看到xiao cms爆了6个cve审计一下 任意目录删除 上传任意文件 很明显...

  • 攻防世界(进阶)--WEB--8.Web_php_unseria

    考察点:php代码审计 1.进入场景,得到php代码 2.化简代码,审计 3.写脚本 得到参数:TzorNDoiR...

网友评论

      本文标题:Bugku------代码审计

      本文链接:https://www.haomeiwen.com/subject/mlsdxftx.html