PHP代码审计
文章平均质量分 77
PHP源码安全
平凡的学者
以红队为终极目标
展开
-
敏感函数回溯参数过程
前言根据敏感函数来逆向追踪参数的传递过程,是目前使用最多的一种方式。因为大多数漏洞是由于函数的使用不当造成的。这种方式的优点是只需搜索相应敏感关键字,即可以快速地挖掘想要的漏洞,具有可定向挖掘和高效、高质量的优点。注入挖掘案例这里我们使用espcms这个应用程序为事例演示整个注入漏洞的查找过程,首先我们得先把项目导入到Seay审计系统中,然后点击自动审计功能,系统会自动帮我们扫描可能存在的漏洞。...原创 2021-04-08 21:01:29 · 497 阅读 · 0 评论 -
会话认证漏洞
Session劫持攻击Session劫持攻击是指黑客劫持目标用户的session id来获取网站服务器上未经许可的存取信息,特别是窃取目标用户等的cookie数据,来取得网站的认可。攻击步骤代码展示login3.php<?php header("Content-Type:text/html;charset=utf-8"); session_start(); if(isset($_POST['login'])){ $username = $_POST[原创 2021-02-10 18:18:28 · 448 阅读 · 0 评论 -
PHP伪协议
file://协议用于访问本地系统文件,条件是allow_url_fopen :off/on;allow_url_include:off/on<?php include ($_GET['file']); ?>php://filterphp://filter 读取源代码并进行base64编码输出,条件是allow_url_fopen :off/on;allow_url_include :off/onbase64解码php://inputphp:/原创 2021-02-10 16:21:59 · 88 阅读 · 0 评论 -
PHP弱类型
PHP的变量类型标准类型:布尔boolen、整型integer、浮点float、字符string复杂类型:数组array、对象object特殊类型:资源resource操作之间的比较及代码展示字符串和数字比较数字和数组比较字符串和数组比较"合法数字+e+合法数字"类型的字符串== 和===,两个等号比较类型是否相同,三个等号在这基础上再比较值是否相等<?php var_dump(0=="admin"); var_dump("1admin"==1);原创 2021-02-10 15:17:08 · 348 阅读 · 0 评论 -
反序列化漏洞
序列化与反序列序列化:把对象转换为字节序列的过程称为对象的序列化反序列化:把字节序列恢复为对象的过程称为对象的反序列化漏洞成因及本质成因:反序列化对象中存在魔术方法,而且魔术方法中的代码可以被控制,漏洞根据不同的代码可以导致各种攻击,如代码注入、SQL注入、目录遍历等等。本质:unserialize函数的变量可控、php文件中存在可利用的类,类中有魔术方法。魔术方法魔术方法触发条件__wakeup()使用unserialize时触发__sleep()使用seria原创 2021-02-03 12:03:02 · 264 阅读 · 0 评论 -
变量覆盖漏洞
变量覆盖及危害变量覆盖(Dynamic Variable Evaluation)是指变量未被初始化,我们自定义的参数值可以替换程序原有的变量值。通常结合程序的其它漏洞实现完整的攻击,比如文件上传页面,覆盖掉原来白名单的列表,导致任意文件上传;用户注册页面控制没覆盖的未初始化变量导致SQL。常见的变量覆盖的特征变量初始化变量bianli.php<?php $a = 1; foreach (array('_COOKIE','_POST','_GET') as $_reque原创 2021-02-02 18:11:15 · 244 阅读 · 1 评论 -
任意文件读取及删除漏洞
任意文件读取漏洞及危害通过提交专门设计的输入,攻击者就可以在被访问的文件系统中读取或写入任意内容,往往能够使攻击者从服务器上获取敏感信息文件,正常读取的文件没有经过校验或者不严格,用户可以控制这个变量读取任意文件。任意文件读取漏洞,是web安全里高危的漏洞,它可以泄露源码、数据库配置文件等等,导致网站处于极度不安全状态。文件读取常见的函数fopenfile_get_contentsfreadfgetsfgetssfilefpassthruparse_ini_filereadfile原创 2021-02-02 14:28:42 · 3270 阅读 · 0 评论 -
目录穿越及文件包含漏洞
目录穿越概念目录穿越(Directory Traversal)攻击是黑客能够在Web应用程序所在的根目录以外的文件夹上,任意地存取被限制的文件夹、执行命令或查找数据。目录穿越攻击,也有人称为Path Traversal攻击。目录穿越的漏洞危害攻击者可以使用目录穿越攻击来查找、执行或存取Web应用程序所在的根目录以外的文件夹。如果目录穿越攻击成功,黑客就可以执行破坏性的命令来攻击网站文件操作漏洞的分类代码展示先来简单展示一下目录穿越的原理,先在当前目录下新建一个file文件夹,里面建一个1.tx原创 2021-01-31 13:47:02 · 7572 阅读 · 1 评论 -
文件上传漏洞
原理文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。这种攻击方式是最为直接和有效的,“文件上传”本身是没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严重的后果。漏洞危害上传文件的时,服务器端脚本语言未对上传的文件进行严格的验证和过滤,就有可能上传恶意的文件,从而控制整个网站,甚至是服务器。漏洞条件文件可上传知道文件上传的路径上传文件可以被访问上传文件可以被执行文件上传可控点Conte原创 2021-01-29 20:37:31 · 166 阅读 · 0 评论 -
CSRF漏洞
CSRF简介CSRF(Cross-site request forgery)跨站请求伪造,也有人写出XSRF。黑客伪造用户木匾用户的HTTP请求。然后将这个HTTP请求发送给存在CSRF的网站,有CSRF的网站执行了伪造的HTTP请求,就引发了跨站请求伪造。漏洞本质攻击者盗用了你的身份信息,以你的名义发送恶意请求。以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账等造成的问题包括:个人隐私泄露以及财产安全。挖掘思路后台功能模块:管理后台、会员中心、添加用户等被引用的核心原创 2021-01-29 17:47:53 · 176 阅读 · 0 评论 -
XSS漏洞
漏洞原理跨站脚本攻击(Cross Site Scripting)是指攻击者利用网站程序对用户输入过滤不足,输入可以显示在页面上对其他用户造成影响的HTML代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。为了与层叠样式表(Cascading Style Sheets)的缩写CSS区分开,跨站脚本攻击通常简写为XSS。跨站脚本攻击(Cross Site Scripting)是指攻击者利用网站程序对用户输入过滤不足,输入可以显示在页面上对其他用户造成影响的HTML代码,原创 2021-01-28 18:36:56 · 407 阅读 · 0 评论 -
命令执行漏洞
利用原理命令注入是一种攻击,其目标是通过易受攻击的应用程序在主机操作系统上执行任意命令。当应用程序将不安全的用户提供的数据(表单,Cookie,HTTP头等)传递给系统shell时,命令注入攻击是可能的。在这种攻击中,攻击者提供的操作系统命令通常以易受攻击的应用程序的特权执行。命令注入攻击可能很大程度上是由于输入验证不足。命令执行和代码执行漏洞的区别代码执行漏洞执行的效果完全受限于语言本身,而命令执行漏洞执行的效果不受限于语言语法本身,不受命令本身限制。命令执行的类型代码层过滤不严系统的漏洞造原创 2021-01-26 21:50:56 · 555 阅读 · 0 评论 -
代码执行漏洞
漏洞原理代码执行漏洞是指应用程序本身过滤不严,用户可以通过请求将代码注入到应用中执行。当应用在调用一些能将字符串转化成代码的函数(如php中的eval)时,没有考虑到用户是否能控制这个字符串,将造成代码注入漏洞。狭义的代码注入通常指将可执行代码注入到当前页面中,如php的eval函数,可以将字符串代表的代码作为php代码执行,当前用户能够控制这段字符串时,将产生代码注入漏洞。漏洞展示eval和assert函数<?php if(isset($_GET['cmd'])){原创 2021-01-23 18:47:19 · 1019 阅读 · 1 评论 -
宽字节与二次注入
宽字节注入原理宽字节注入也是MYSQL的一种特殊的注入类型,它是利用了数据库中对url中的%df%5c的原理形成一个運字,%5c是addslashes这个函数自动添加的一个反斜杠,因此利用这个原理,单引号%27就逃逸出来了。漏洞展示数字型<?php $id = intval($_GET['id']); $conn = mysql_connect('localhost','root','root'); mysql_select_db('admin',$conn);原创 2021-01-23 00:52:40 · 304 阅读 · 0 评论 -
SQL注入漏洞原理
前言SQL注入漏洞一直都是所有漏洞排名的榜首,虽然网上有很多教程,但是还是得自己真正了解其代码原理和漏洞原理才能真正预防。因此我借此用PHP代码还原简单的SQL漏洞原理。漏洞复现之前,我们必须先安装phpmyadmin,然后创建一个有数据的数据库和数据表漏洞原理数字型注入<?php $id = $_GET['id']; $conn = mysql_connect('localhost','root','root'); mysql_select_db('admin原创 2021-01-22 17:16:09 · 1393 阅读 · 0 评论