![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
php代码审计
文章平均质量分 74
goddemon
EduSRC 2021年榜第七
土司论坛2022名人堂
src挖掘收入6位数以上
自信从容,虚心进步,慢慢成长
展开
-
TP 5.0.24反序列化漏洞分析
很久没发过文章了,最近在研究审计链条相关的东西,codeql,ast,以及一些java的东西很多东西还是没学明白就先不写出来丢人了,写这篇tp的原因呢虽然这个漏洞的分析文章蛮多了,但是还是跟着看了下,一方面是因为以前对pop链挖掘一直学的懵懵懂懂的 ctf的一些pop链能出,但是到了框架里面自己就是挖不出来,所以就想着自己挖下tp反序列化的链子来看看,另一方面是想思考学习下php挖掘利用ast手法去该怎么入手(虽然后面这个问题还没解决),所以就有了这篇文章。原创 2022-10-20 16:02:54 · 6211 阅读 · 1 评论 -
php代码审计特殊漏洞
一.变量覆盖漏洞常见变量覆盖漏洞问题–>5个1.$$2.extract()变量覆盖3.parse_str()与mb_parse_str()原理:这两个函数会将查询到的值覆盖php的变量<?phpparse_str("a=1");echo $a."<br/>"; //$a=1parse_str("b=1&c=2",$myArray);print_r($myArray); //Array ( [b] => 1 [c] => 2 )?>原创 2021-09-11 21:32:41 · 174 阅读 · 0 评论 -
代码审计命令执行专题
一.命令执行漏洞命令执行函数systempassthruexecshell_execpopenpron_openpcntl_execdlxx命令执行过滤函数escapeshellcmdescapeshellarg二.XML实体注入PHP XML解析函数simplexml_load_filesimplexml_load_stringSimpleXMLElementDOMDocumentxml_parse如有输出的直接搜索关键字进行审计就完事$data =原创 2021-09-10 11:11:53 · 193 阅读 · 0 评论 -
thinkphp框架代码审计初学
一.thinkphp基本结构①框架基本结构与默认结构默认常量对应的路径②函数变量命名入口文件分析①入口文件的本质:定义应用目录与框架入口文件// 定义应用目录define('APP_PATH', __DIR__ . '/../application/');//即从这个应用目录里面进行读取文件// 加载框架引导文件require __DIR__ . '/../thinkphp/start.php';//__DIR__这个魔法函数即返回当前目录所在的目录文件②基础的设置语句1.建立原创 2021-07-06 19:37:39 · 863 阅读 · 3 评论 -
php代码审计实战(一)
源码:熊海CMS_1.0安装方法:这里是用宝塔直接搭建的①数据库需要宝塔建立一个数据库导入那个数据库文件就好了然后安装的时候输入的数据库,账户,密码跟宝塔的数据库是一样的就好了②php版本问题:需要将php设置为5.6才可以进行运行且注意:如果无法运行<?php phpinfo(); ?>需要去查看短标签和php配置禁用函数审计过程看个人习惯和时间去确定自己的审计方法吧我的话快审的话:1.过一遍功能点,然后猜存在的漏洞,找到对应的代码进行审计2.直接seay这些审计系统通原创 2021-07-05 17:32:15 · 3337 阅读 · 4 评论 -
PHP代码审计 文件包含专题
基础分析任意文件包含原理源码:即对包含文件没有进行过滤导致<? php $f = $_GET['f']; include_once('sys/config.php'); include($f);?>或者<?phpinclude($_GET['f']);?>利用条件:在php.ini文件中配置两个参数相关的协议allow_url_fopen :on 默认开启 该选项为on便是激活了 URL 形式的 fopen 封装协议使得可以访问 URL 对象文件等。al原创 2021-02-04 15:54:30 · 412 阅读 · 0 评论 -
PHP代码审计 SQL注入专题
常见防御方法1.开启gpc2.mysql_real_escape_string3.addslashes4.关键字过滤代码分析== 防御成功的利用这两个函数即可== <?php if (isset($_GET['Submit'])) { // Retrieve data $id = $_GET['id']; $id = stripslashes($id); $id = mysql_real_escape_string(原创 2021-02-04 15:40:59 · 364 阅读 · 0 评论 -
PHP代码审计 XSS专题
一,XSS反射型漏洞①xss漏洞处1.变量的直接输出 <?php echo $_GET['xss']; ?>如cs.php存在的是上面的这个源码http://127.0.0.1/cs.php?xss=2.$_SERVER 变量参数$_SERVER[‘PHP_SELF’] //直接在URL中输出执行XSS$_SERVER[‘HTTP_USER_AGENT’] //HTTP头中构造XSS$_SERVER[‘HTTP_REFERER’] //Referer头中构造XSS$_原创 2021-02-04 15:33:56 · 310 阅读 · 0 评论 -
PHP反序列化专题
一,序列化基础知识类魔术函数:即调用一些函数时,可直接自动调用这些函数5种类型__contstruct()函数:被称为构造函数,当实例化类的时候会自动调用该函数构造函数,即当对象创建new时会自动调用。但在反序列化时不会自动调用__destruct()函数:被称为析构函数,当类结束(对象销毁)的时候自动调用该函数__sleep()函数:当php进行序列化操作(serialize)的时候自动调用该函数,可以用于清理对象,并返回一个包含对象中所有应被序列化的变量名称的数组。如果该方法未返回任何内容,则原创 2020-12-10 22:05:09 · 790 阅读 · 2 评论 -
攻防世界unserialize3学习
【考察点】①绕过_wakeup()过滤机制②序列化与反序列化的原理与格式③利用类代码序列化的方法④两个函数serialize() //将一个对象转换成一个字符串unserialize() //将字符串还原成一个对象【知识点】①序列化后格式为public属性序列化后格式为:数据类型:属性名长度:“属性名”;数据类型:属性值长度:“属性值”②反序列化与_wakeup函数的关系执行unserialize()时,先会调用__wakeup()且当序列化字符串中属性值个数大于属性个原创 2020-08-14 22:54:30 · 189 阅读 · 0 评论 -
记录攻防世界web进阶(2)
NaNNaNNaNNaN-Batman考点:js代码的审计能力弹窗上的源码和页面的源码的区别,即获取完整源码的能力知识点:函数document.getElementById(“c”)的理解(即返回对拥有指定 ID 的第一个对象的引用的值)函数e.match(/^be0f23/)(即匹配e中是否存在这几个字符,匹配即true,else即null)splice(0,1)函数,即从第0个位置开始删除一个值的意思,也可以增加值splice(0,0,“hello”);即加一个hello在第零个位原创 2020-06-09 23:14:20 · 230 阅读 · 0 评论 -
php代码审计后常用的解密方法
①解多重加密如题目$login = unserialize(gzuncompress(base64_decode($requset['token'])));if($login['user'] === 'ichunqiu'){echo $flag;}解密方法<?php$arr = array(['user'] === 'ichunqiu');//即定义一个等于这个的变量状况特点$token = base64_encode(gzcompress(serialize($arr)));//利用原创 2020-06-08 22:28:19 · 458 阅读 · 0 评论