首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏V站

    关于PHP漏洞以及如何防止PHP漏洞

    这些漏洞不仅仅是针对PHP语言的,本文只是简单介绍PHP如何有效防止这些漏洞2. 命令执行 对于命令执行,可以从关键字入手,总共可分为3类 (1) php代码执行 :eval等 (2)shell命令执行:exec、passthru、system、shell_exec等 (3) 文件处理 后台的文件没有包含对session的验证,就容易出现这样的问题 (2)未作用户隔离,例如mail.php?id=23显示了你的信件,那么换个ID, mail.php? (phpddt.com)就有一篇文章:关于PHP防止漏洞策略 ,介绍了register_globals 的危害以及魔术引用Magic Quotes使用说明。

    2.3K110发布于 2018-06-10
  • 来自专栏编程

    PHP漏洞函数总结

    1.MD5 compare漏洞 PHP在处理哈希字符串时,会利用”! a[]=1&b[]=2 2.ereg函数漏洞:00截断 ereg ("^[a-zA-Z0-9] $", $_GET['password']) === FALSE 1 字符串对比解析 在这里如果 $_GET 在所有php认为是int的地方输入string,都会被强制转换 15.serialize 和 unserialize漏洞 1.魔术方法 这里我们先简单介绍一下php中的魔术方法(这里如果对于类、对象、方法不熟的先去学学吧 ');中把|之前认为是键值后面的视为序列化 那么就可以利用这一漏洞执行一些恶意代码 看下面的例子 1.php ini_set('session.serialize_handler', 'php_serialize > 在1.PHP里面输入a参数序列化的值|O:5:”lemon”:1: 则被序列化为 a:1: 在2.PHP里面打开 就可以执行phpinfo()了

    2.4K70发布于 2018-02-02
  • 来自专栏安恒网络空间安全讲武堂

    PHP 邮件漏洞小结

    前言 此篇文件为有关PHP邮件漏洞的总结,如有错误,还请各位师傅指出。 PHP mail()函数介绍 ? CVE-2016-10033分析 上面我们分析了PHP中mail函数产生的漏洞,而这个cve phpmailer正是因为第五个参数过滤的不严谨导致的漏洞,下面开始进行分析,代码在https://github.com 漏洞环境https://github.com/opsxcq/exploit-CVE-2016-10033 漏洞利用条件 php version < 5.2.0 no pcre phpmailer < 5.2.18 具体链接:https://www.php.net/manual/zh/function.imap-open.php 漏洞主要触发原理: 如下实例: @imap_open('{localhost}:143 .'}:143/imap}INBOX', '', ''); 存在RFI漏洞文件: <?php include($file); ?

    3K10发布于 2019-05-28
  • 来自专栏全栈程序员必看

    ewebeditor php漏洞,ewebeditor for php任意文件上传漏洞「建议收藏」

    漏洞仅测试了最新版v3.8,不知道低版本是否存在此漏洞PHP版本的ewebeditor并没有使用数据库来保存配置信息,所有信息位于php/config.php中,代码如下: $sUsername = “admin”; $sPassword = “admin 这漏洞成因很简单,下面给个exp URL: file: function fsubmit(){ form = document.forms[0]; form.action = form.url.value +’php/upload.php? action=save&type=FILE&style=toby57&language=en’; alert(form.action); form.submit(); } 漏洞修补方法: 初始化数组$aStyle

    1.4K20编辑于 2022-09-14
  • 来自专栏信安之路

    php 反序列漏洞初识

    , value pairs};a{s"key1";s"value1";s"value2";} // array("key1" => "value1", "key2" => "value2") 3.PHP 2.利用普通成员方法 在反序列化的时候,当漏洞/危险代码存在类的普通方法中,就不能指望通过“自动调用”来达到目的了。这时的利用方法如下,寻找相同的函数名,把敏感函数和类联系在一起。 <? ,来测试 exploit. 2.构造 exploit 的思路 1、寻找可能存在漏洞的应用 2、在他所使用的库中寻找 POP gadgets 3、在虚拟机中安装这些库,将找到的POP链对象序列化,在反序列化测试 E5%88%86%E6%9E%90 PHP 反序列化漏洞: http://paper.tuisec.win/detail/fa497a4e50b5d83 理解 php 反序列化漏洞: https://blog.csdn.net B0%88php%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E6%BC%8F%E6%B4%9E/ PHP 反序列化漏洞成因及漏洞挖掘技巧与案例: https://www.anquanke.com

    1.4K00发布于 2018-08-08
  • PHP 文件上传漏洞代码

    文件上传在PHP中经常被使用到,例如上传一个图片,上传一个文本等,文件上传如果在编写时过滤不够严格则很有可能导致漏洞的产生,如下代码是针对文件上传漏洞的总结,学习这些问题代码可以更好的查缺补漏弥补问题。 submit" name="submit" value="上传"> </form> </body> 白名单验证文件头: 本关主要是允许jpg/png/gif这三种文件的传输,且代码中检测了文件头的2字节内容 ($filename) { $file = fopen($filename, "rb"); $bin = fread($file, 2); fclose($file); $strInfo = @unpack("C2chars", $bin); $typeCode = intval($strInfo['chars1']. $strInfo['chars2']); $fileType = ''; switch($typeCode) { case 255216

    3.3K10编辑于 2022-12-28
  • 来自专栏代码审计

    PHP变量覆盖漏洞小结

    前言 变量覆盖漏洞是需要我们需要值得注意的一个漏洞,下面就对变量覆盖漏洞进行一个小总结。 其实,大多数变量覆盖漏洞是函数使用不当导致的。比如extract()函数和parse_str()。 php $b=2; $a=array('b'=>'123'); extract($a); echo $b; ? > 原来b=2,经过extract()函数对a处理后, parse_str()函数使用不当导致变量覆盖 parse_str()函数的作用是解析字符串并且注册成变量,它在注册变量之前不会验证当前变量是否存在 php $b=2; parse_str($b=321); print_r($b); ?> 我们发现$b的值被覆盖为321。 $$变量覆盖 先看引起覆盖的一小段代码: <?

    3K10发布于 2020-09-27
  • 来自专栏PHP专享栏

    PHP代码审计注入漏洞

    注入的种类有很多,而不仅仅是SQL Injection. php常见注入有以下几种 ? Cross Site Scripting,XSS) SQL注入攻击(SQL Injection) 动态函数注入攻击(Dynamic Variable Evaluation) 序列化注入 & 对象注入 php 由此我们基本可以确定是存在注入漏洞的.进行手动验证.. ? ? 通过验证得知. 注入漏洞确实存在.接下来我们就需要做相应的修复. 通过发现漏洞过程,得知造成此问题是因为参数过滤不严导致的,那我们如果能对提交的参数做很好的验证过滤,保证我们提交的数据时ip类型或者域名类型是不是就可以解决了? 发现漏洞已修复. ?

    1.8K10发布于 2019-10-24
  • 来自专栏袁某人

    PHP处理MYSQL注入漏洞

    PHP处理MYSQL注入漏洞 本文最后更新时间超过30天,内容可能已经失效。 一、什么是SQL注入 SQL注入漏洞PHP研发人员所熟知,它是所有漏洞类型中危害最严重的漏洞之一。 SQL注入漏洞,主要是通过伪造客户端请求,把SQL命令提交到服务端进行非法请求的操作,最终达到欺骗服务器从而执行恶意的SQL命令。 下面对每一种注入威胁举例说明,以帮助您在编码过程中有效地避免漏洞的产生。 为了能更直观地了解SQL注入,先在数据库中创建一个名叫hacker的用户表。 当攻击者再利用其他漏洞找到下载方式,将文件下载或者复制走,最终造成被拖库时,Web站点的数据就会全部暴露。 如果执行下面请求,将发生更可怕的事情。 在页面无返回的情况下,攻击者也可以通过延时等技术实现发现和利用注入漏洞

    2.9K50编辑于 2021-12-28
  • 来自专栏字节脉搏实验室

    PHP函数unserialize()漏洞浅析

    4.对象销毁 函数的相关执行流程已经大致介绍完毕,那具体的unserialize()中的漏洞是如何发生的呢? 攻击者可以使用此反序列化漏洞来实现RCE攻击,因为用户提供的对象被传递给反序列化,并且Example2类具有在用户提供的输入上运行 eval() 的魔术函数。 要利用此RCE,攻击者只需将其数据 cookie 设置为一个序列化的Example2对象,并将hook属性设置为他想要执行的任何PHP代码。他可以使用以下代码片段生成序列化的对象: ? ? cookie是序列化的Example2对象,所以unserialize()实例化一个新的Example2对象; unserialize() 看到Example2类执行了_wakeup(),因此调用了_ 那么知道了漏洞的形成,如何防范unserialize()漏洞呢? 为了防止发生PHP对象注入,建议不要将不受信任的用户输入传递给unserialize()。

    2.5K20发布于 2020-09-25
  • 来自专栏Mirror的技术成长

    PHP命令执行漏洞初探

    PHP命令执行漏洞初探 Mirror王宇阳 by PHP 命令执行 PHP提供如下函数用于执行外部应用程序;例如:system()、shell_exec()、exec()、passthru() system php $host = $argv[1]; system("ping ".$host); ?> 在服务端运行php.exe index.php 192.168.2.1 ? 执行php.exe index.php "|net user"(这里的“|”符号的作用时屏蔽源代码的ping字符) ? ;</script>"; return 0 ; } function T2() { echo "<script>alert('Error');</script>"; return 0 php $arr = $_GET['arr']; $array = array(1,2,3,4,5); $new_array = array_map($arr, $array); ?> ?

    2.1K20发布于 2020-11-12
  • 来自专栏PHP专享栏

    PHP漏洞之-Session劫持

    php处理session的应用架构 ? 会话劫持 会话劫持是指攻击者利用各种手段来获取目标用户的session id。 2)计算:如果session id使用非随机的方式产生,那么就有可能计算出来 3)窃取:使用网络截获,xss攻击等方法获得 会话劫持的攻击步骤 ? 开始攻击 //attack.php php // 打开Session session_start(); echo "目标用户的Session ID是:" . session_id > 提交 http://localhost/attack.php? 开头加上 session_start(); session_regenerate_id(TRUE); …… 这样每次从新加载都会产生一个新的session id 2)更改session的名称 session

    2.6K20发布于 2019-10-29
  • PHP 常见漏洞代码总结

    漏洞总结 PHP 文件上传漏洞 只验证MIME类型: 代码中验证了上传的MIME类型,绕过方式使用Burp抓包,将上传的一句话小马*.php中的Content-Type:application/php, 注入漏洞 基本查询语句 搭建SQL注入演练环境,首先确保MySQL版本为MySQL 5.7以上,并导入下方的数据库脚本自动创建相应的数据库文件. drop database if exists id=1' and 1=0 union select 1,2,3,4 --+ index.php? id=1' and 1=0 union select 1,2,3,4,5 --+ index.php? id=1%2b1 # 提交加号判断注入 index.php?id=2-1 # 提交减号判断注入 index.php?

    1.6K30编辑于 2022-12-28
  • 来自专栏网站漏洞修补

    网站漏洞检测对php注入漏洞防护建议

    关于该metinfo漏洞的分析,我们来看下漏洞产生的原因: 该漏洞产生在member会员文件夹下的basic.php代码文件: metinfo独有的设计风格,使用了MVC框架进行设计,该漏洞的主要点在于使用了 n=user&m=web&c=register&a=doemailvild HTTP/1.1 Cookie: p=00c7%2FDBwD23b41olxVCthTvDDTRBhldmrrdyA8S3t% 2F3yAl4QZ0P%2FSfOS5zlB 把具体的SQL注入语句放到 cookie中进行攻击,我们发现注入成功了。 n=user&m=web&c=profile&a=dosafety_emailadd HTTP/1.1 Cookie: p=497cD9UpkDtsvFzU9IKNlPvSyg1z%2bf09cmp8hqUeyJW9ekvPfJqx8cLKFSHr 建议找专业的网站安全公司来处理修复漏洞,国内SINE安全,以及绿盟,启明星辰,都是比较不错的网站漏洞修复公司。

    3.7K50发布于 2019-04-08
  • 来自专栏网站漏洞修补

    网站漏洞修复分析php代码漏洞过程

    2020年,刚刚开始WordPress博客系统被网站安全检测出有插件绕过漏洞,该插件的开发公司,已升级了该插件并发布1.7版本,对以前爆出的漏洞进行了修补,该企业网站漏洞造成的原因是未经许可身份认证的普通用户给以了系统管理员权限 根据目前WP官方的数据资料统计,使用该版本的用户以及网站数量占比竟然达到百分之95左右,受漏洞影响的网站确实太多,建议各位站长尽快对该插件进行升级,修复漏洞。 该网站漏洞的利用方式以及条件,必须是该主题插件处于启用状态,并且是公司网站上都安装了这个插件才会受到漏洞的攻击,让黑客有攻击网站的机会。 某安全组织于2月6号检测到了该网站插件绕过漏洞,在同一天将其安全报告给插件的开发公司。十天之后,也就是上个星期,主题Grill插件公司,发布了修复该网站漏洞的新版本。 针对于WP官方的数据安全中心发布的安全报告中显示的两个网站漏洞,当黑客利用这些网站漏洞时,都是会造成和本次安全事件一样的影响。

    1.8K20发布于 2020-03-02
  • 来自专栏全栈程序员必看

    java struts2 漏洞_Struts2漏洞简述

    S2-005漏洞 S2-005是由于官方在修补S2-003不全面导致绕过补丁造成的。 S2-013漏洞 漏洞触发: 由于官方没有发补丁,所以最新版本的struts2还是有漏洞的,可以下载最新:Apache Struts 2.3.14 GA的示例应用。 请勿任意尝试,漏洞利用代码会让对方站点挂掉 S2-032漏洞 此次漏洞存在于struts2的动态方法引用功能。 S2-037漏洞 S2-037的漏洞利用思路建立在s2-033的基础只上,还是对method没有进行过滤导致的,漏洞影响Struts 2.3.20 – Struts 2.3.28.1版本,使用到REST Poc: image.png S2-045漏洞 漏洞分析 Apache Struts2存在远程代码执行漏洞,攻击者可以将恶意代码通过http报文头部的Content-Type字段传递给存在漏洞的服务器

    1.5K30编辑于 2022-09-09
  • 来自专栏全栈程序员必看

    java struts2 漏洞_struts2漏洞列表

    漏洞参考】 http://struts.apache.org/2.x/docs/s2-001.html XWork 绕过参数拦截器执行OGNL语句 【官方ID】S2-003 【危害等级】高 【受影响版本 【漏洞参考】 http://struts.apache.org/2.x/docs/s2-003.html 目录遍历漏洞可以获取服务器静态文件 【官方ID】S2-004 【危害等级】高 【受影响版本】 Struts 2.0.0 – Struts 2.0.11.2 【漏洞描述】 原因:struts2分派器设计问题。 OGNL远程代码执行漏洞 【官方ID】S2-007 【危害等级】高 【受影响版本】 Struts 2.0.0 – Struts 2.2.3 【漏洞描述】 转换错误,导致用户输入可以当做OGNL表达式执行 【Exploit】 struts2多个安全漏洞 【官方ID】S2-008 【危害等级】高 【受影响版本】 Struts 2.1.0 – Struts2.3.1 【漏洞描述】 Remote command

    99320编辑于 2022-09-09
  • 来自专栏betasec

    PHP序列化漏洞原理

    本文作者:cream(贝塔安全实验室-核心成员) PHP序列化漏洞原理 1、序列化(串行化) 2、反序列化(反串行化) 3、序列化实例分析 4、反序列化实例分析 5、祸起萧墙---Magic函数 5.1 PHP反序列化漏洞CTF练习题 7、防御PHP序列化漏洞 1、序列化(串行化) 将变量转换为可保存或传输的字符串的过程; 2、反序列化(反串行化) 在适当的时候把这个字符串再转化成原来的变量使用。 成功读取到文件中的内容 6、实例讲解 6.1 CVE-2016-7124 触发该漏洞PHP版本为PHP5小于5.6.25或PHP7小于7.0.10。 影响版本:Typecho 0.9~1.0 漏洞的入口出现在install.php页面,代码如下: //判断是否已经安装 if (! 在源代码中可以看到flag{php_is_the_best_language} 7、防御PHP序列化漏洞 1.要严格控制unserialize函数的参数,坚持用户所输入的信息都是不可靠的原则 2.要对于

    2.2K10发布于 2020-07-31
  • 来自专栏Andromeda的专栏

    PHP反序列化漏洞

    > 输出结果: O:6:"person":2:{s:4:"name";s:3:"cx";s:3:"age";i:19;} O代表结构类型为类 6表示类名长度 person表示类名 2表示类的属性个数 条件 unserialize()函数的参数可控 php中有可以利用的类并且类中有魔术方法 漏洞成因 当传给unserialize()的参数可控时,就可以注入精心构造的payload,在进行反序列化是就可能触发对象中的一些魔术方法 Web_php_unserialize 题目来源攻防世界 前置知识:在 PHP5 < 5.6.25, PHP7 < 7.0.10 的版本存在__wakeup()的漏洞。 正则表达式完整教程 利用__wakeup()漏洞绕过 然后绕过__wakeup(),修改类的属性个数大于真是属性个数即可。 修改后的序列化结果如下: O:+4:"Demo":2:{s:10:"Demofile";s:8:"fl4g.php";} 编码、构造payload 然后进行base64编码,注意不要忘记加上两个\x00

    1.4K40编辑于 2022-10-27
  • 来自专栏瞳瞳too的学习笔记

    PHP漏洞学习一 ——伪协议

    伪协议 一、示例代码 题目提示:伪协议(考点:伪协议读取、系统进程) 伪协议读取flag.php,/proc/self指向当前进程的 显示代码 <? php highlight_file(__FILE__); require_once 'flag.php'; if(isset($_GET['file'])) { require_once $_GET ['file']; } 相关知识:PHP伪协议 PHP伪协议详解 require_once 绕过不能重复包含文件的限制 构造Payload: ? file=php://filter/read=convert.base64-encode/resource=file:///proc/self/root/proc/self/root/proc/self root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/flag.php

    40120编辑于 2023-12-18
领券