宿迁腾云网络网站建设公司

腾云网络 八年经验专注网站建设
  • 首页
  • 服务项目
    • 网站建设
    • 微信小程序
    • APP开发
    • SEO优化
  • 建站费用
  • 成功案例
    • 网站建设案例
    • 小程序案例
    • APP开发案例
    • SEO优化案例
  • 行业动态
    • 网站建设
    • SEO优化
    • 技术日志
  • 联系我们
    • 关于我们
首页 > 行业动态 > 技术日志 > php 代码格式化工具PHP中对XSS进行过滤的简单(绕过)方法。php代码格式化工具

php 代码格式化工具PHP中对XSS进行过滤的简单(绕过)方法。php代码格式化工具

2022-04-22

集成绕过。

接下来将展示一些简单(绕过)过滤关键字的方法。

(1)过滤代码

('/(and|or|||)/I',$id)

绕过方法:过滤关键字and,or,,,构造代码类似11|| ( user from by =1 ) = '' 绕过。

(2)过滤代码

('/||||eval||||j

|link|'|%|/*|*|../|./|,|.|--|"|and,$str)

绕过方式:只过滤小写注入关键字,大写可以绕过。

三、XSS 审计

是近年来流行的一种攻击方式。恶意攻击者将恶意 html 代码插入网页。当用户浏览网页时,会执行嵌入的html代码,从而达到恶意攻击用户的特殊目的。 那么 PHP 中的 XSS 审计呢?

这是一段历史,第一次在X3.1版本的补丁中修复,但是对于仍然使用的旧版本的X3.1(其实大部分都在用老版本,因为X3.1在出补丁的时候已经放了很久了)和以下版本的网站,这个还是有效的。让我们来看看审计过程。

此漏洞的代码在下面的.php 中。

119 如果($){

120 if(($, 'ed2k://') != ) {

121 $ = ("/ed2k://(.+?)//e", "('1')",

$);

122 }

123 }

显然,这段代码是检测ed2k协议是否开启,并处理第121行的ed2k链接。为了让大家更清楚的理解这些PHP代码,这里简单介绍一下涉及到的一些API,假设你的PHP 的掌握处于入门阶段。第121行的函数原型如下。

($,$,

$ [, int $ = -1 [, int &$]] )

// 进行正则表达式搜索和替换:搜索的匹配部分被替换为

对于刚接触的初学者,可能会觉得自己对代码的掌握还不够。不要紧。每种语言的官方手册都有每个功能的详细说明,供开发者学习。对于有一定经验的审计人员来说,开源项目的手册或说明文本中还有很多重要的部分,同一个厂商的过去也可能为审计指明方向,不要羞于站在巨人的肩膀上!

这个函数调用()函数对$进行常规处理,我们来跟踪处理函数()。

320 ($url) {

321 $_G;

322 list(,$type, $name, $size,) = ('|', $url);

//用于读取连接的类型、名称和大小

323 $url = 'ed2k://'.$url.'/';

324 $name = ($name);

325 if($type == '文件') {

326 $ = ''.(3);

327'

">'.(($name)).'

('.($size).')

$(''.$.'').=(

((''.$name.'')))+' ('.

($size).')';';

328 } 其他 {

329 ''.$url.'';

330 }

331 }

从这段代码可以看出,()没有对参数$size进行安全处理,甚至没有对$size进行类型转换(暂时认为这是程序员的疏忽) ,所以在函数($size)中传入的是字符串类型的$size变量。

下一个 up()函数,在.php同目录下:

1601 ($size) {

1602 if($size >=) {

1603 $size = ($size/ * 100)/100 . 'GB';

1604 } 否则 if($size >= ) {

1605 $size = ($size / * 100) / 100 .'MB';

1606 } else if($size >= 1024) {

1607 $size = ($size / 1024 * 100) / 100 . 'KB';

1608 } 其他 {

1609 $size = $size 。 '';

1610 }

1611 美元大小;

1612 }

此代码用于划分文件大小。 类型的 $size 的值与类型比较时,会被强制转换为类型,然后进行比较。如果传入的$size不是纯数字字符串,则将$size的值转换为NaN(Not a),不会触发前三个if语句,直接进入else语句,函数在else 不正确 $size 进行类型转换,直接与 '' 配对。配对后的字符串最终返回到.php中第121行的$,然后输出。

第 1609 行在 ×3.1 补丁中被替换为:

1609 $size = ($size)。' ';

函数将 $size 转换为整数,从而避免了对 $size 的 XSS 攻击。

让我们测试一下:

在X3.1或以下版本的论坛发帖时插入这句话:

ed2k://|file|xss|'+(123)+'|xss/

图 16 所示的对话框展示了漏洞的存在。

图 16 XSS 对话框

顺便说一句,由于格式限制,这个不能包含各种引号。不要气馁,在这里你可以使用 .(.(... ...));写html标签,比如这里的属性src不需要引号来加载外部的js文件,然后就用这个吧。

通过简单分析可以发现,程序员为了简化代码(其实打补丁后并没有简化),通过强制转换将字符串类型的$size与整数类型进行比较,然后直接比较 $size 和指示的文件大小,单位字符串连接,这种简化是一个很不好的习惯,在写代码的时候,应该避免使用强制类型转换来比较不同类型的变量,这种方法经常被攻击者使用(比如这里)。

四、变量覆盖

关于变量覆盖,首先要了解PHP的特点。 PHP 是一种松散类型的语言,它会根据变量的值自动将变量转换为正确的数据类型。变量覆盖是指攻击者在攻击过程中给它一个特定的值,并覆盖原来的固定值,从而引起一些安全问题。常见的变量覆盖如下所述。

1、变量初始化

这种类型的变量覆盖需要 =on 才能发生。我们来看看《黑云与白帽》的一个漏洞。

这里的变量没有初始化,而是直接代入查询语句,导致变量覆盖,这里触发注入。注入格式为 ?=list&= 语句。

2、危险函数导致的变量覆盖

角色

() 函数是将数组中的变量导入到当前符号表中。当函数中的类型参数为默认值且传入的变量同名时,会被覆盖,导致其他安全问题。我们来看一个开源程序代码。

第4行的($)命令导致变量覆盖,所以我们可以直接覆盖$,完成注入语句。

五、命令执行

命令执行是PHP的一种常见类型,危害更大,直接威胁服务器的安全。在PHP中,命令执行经常发生在高危函数上,如eval()、()、()、exec()、()、()、()。由于开发者的疏忽,这些函数执行的命令有时是用户可控的,导致攻击者提交恶意代码达到攻击目的。下面就来分析一下。

1、常用命令执行函数

(1)eval()

此函数根据 PHP 代码执行字符串。语法:

eval();

以下是问题的代码:

这是一个非常简单的代码。可以看到代码中将参数com的值传递给了变量com,然后变量com的值直接作为PHP代码执行,因此漏洞出现。当参数com为();时,结果如图17所示。

图 17 执行命令

(2)()

该函数类似于C语言的()函数,用于执行指令并输出结果。语法格式:

( , int []);

以下是问题的代码:

当参数com为时,结果如图18所示。

图 18 执行命令

当参数com为ping时,结果如图19所示。

图 19 执行 ping 命令

(3)()

此函数在应用用户自定义函数后返回数组。回调函数接收的参数个数应该和传递给()函数的数组个数一样,语法格式:

(, , , ...)

以下是问题的代码:

让上面代码中的参数为 ,结果如图20所示。

图 20 执行命令

2、动态函数

在实际开发中,有些程序员希望动态调用某些函数,却往往忽略了动态函数的风险。

以下是问题的代码:

在上面的代码中,程序员的初衷是动态调用A函数和B函数,所以变量作为函数名,是可控的。但这实际上等同于执行任何函数。当参数为,参数com为ping时,结果如图21所示。

图21直接执行ping命令

六、上传绕过

熟悉的朋友一定知道,文件上传是主要方式之一,是获取Web权限的重要方式,而且往往是最后一级,可见其重要性。下面我们来分析一下常见的文件上传绕过。

1、Java 绕过

我们先来看一个示例代码:

让我们看看函数。

可以看到调用是一段Java代码,我们回到函数。

此代码在文件类型无效时调用,但无论调用失败与否,都会执行上传代码,所以只要禁用Java,就可以知道上传文件的路径。

这里直接替换包(因为Java是客户端脚本语言,只限制浏览器),如图22。

图 22 改为更改包

2、文件头验证绕过

问题代码如下。

以上代码判断文件类型,只允许/gif类型。但是人们仍然可以伪造这样的标题进行上传。

3、逻辑问题

示例代码如下。

问题出在后缀判断和功能上。我们先来看看后缀判断。

如果($[0] == ($[1]) && $[1] ==

"")

上传XX.jpg.php时:

$[0]=××

$[1]=jpg

$[2]=php

但是可以看到if语句没有判断$[2],所以成功绕过进入函数。

($[''] . "/" . $[$]['name'], $

dat[''] 。 “/”。 $[0] 。 “。” . ($[1]));

这里将之前上传的××.jpg.php重命名为××.jpg。但是根据功能特点网站优化,第二次上传同名文件时php 代码格式化工具,比如××.jpg.php,会进入进程尝试重命名××.jpg,但是因为×× .jpg 已经存在,上传成功。 ××.jpg.php.

七、文件包含

文件包含也是 PHP 中的一个常见漏洞,因此它通常是极其有害的。那么什么是文件包含?它经常出现在 ()、()、()、() 以及这些加载文件的函数上。由于文件名没有被过滤,攻击者可以包含任意文件或特定文件,从而达到攻击的目的。

1、漏洞

问题代码如下。

这段代码的初衷应该是调用一个文件的样式和函数。但是因为这里的目录是用户可控的,所以可以调用任何文件。问题就出在这,如果攻击者上传一张末尾带有PHP恶意代码的图片,比如/××.jpg,然后访问?dir=/××.jpg,恶意代码就会被引入到当前文件中并执行,从而达到攻击的目的。

当然,文件包含不限于包含上传的文件,还可以包含一些配置文件。

?dir=.

?dir=../../../../../../web.

?dir=../../../../../../../../../var/log//.log

?dir=../../../../../../../../../proc/.gz(需要root权限)

?dir=../../../../../../../../../etc/(需要root权限)

2、绕过限制

在实际开发中,开发者为了避免受害,对包含路径做了很多限制,比如下面的代码。

从这里可以看出,开发者同时控制目录和后缀。但是可以提交 ../ 以轻松绕过对目录的限制,同时绕过对带有截断的后缀的限制。如?dir=../../../../../../../etc/,从而包含恶意文件。

截断需要=off,只有在PHP版本小于5.3.4时才能实现。

当然,对于上面的代码,还有其他方法可以绕过它的限制,比如路径长度截断(PHP版本小于5.2.8,文件名长度大于4096字节,长度大于256字节),句点截断(PHP版本小于5.2.8,仅适用于系统,句点长度必须大于256字节) 等。

让我们看看另一段过滤目录的代码。

.php:

这个过滤代码使用一个函数将../替换为./,这样攻击者就无法使用../跳出目录。但是在提交.../的时候,因为../被./替换了,又变成了../,从而跳出了目录。所以当人们提交 ?dir=.../.php 时,文件就被成功包含进来了。

测试结果如图23所示。

图 23 包含本地文件

3、读取任何文件

是最常用的文件读取函数,用于将整个文件读入一个字符串。语法:

(路径, , , , )

也称为任意文件读取,它控制要读取的文件的路径,从而达到攻击的目的,比如读取一些数据库配置文件。

我们先来看一段代码:

提交 ?dir=/data/web.结果如图 24 所示。

图 24 读取本地文件

八、写在最后

随着互联网的普及,商业网站、政府网站、个人博客数不胜数。建站门槛越来越低,建站流程越来越标准化、智能化。很多不懂网站开发的人也可以使用腾云网络搭建自己的网站。云网络价格低廉,很多企业和政府也选择了安全性高、口碑好的腾云网络进行网站建设。因此php 代码格式化工具,腾云网络的安全尤为重要。如今,随着PHP的广泛使用,PHP在开源市场中的地位越来越高。在这里,我以总结的形式谈谈开源审计的经验。

在审计开始时,应该先通读全局文件,看看是否有一些全局过滤,大致了解程序的结构。如果做全局过滤,可以尝试对代码进行过滤,如果成功了,就彻底落下了。

在审计中,应特别注意用户可控制的参数。对于可控参数的搜索,可以检索一些参数组小程序开发,以提高审计效率。常用参数组见表1。

表1常用参数组

当找到一个可控参数时,可以分析它经过了几次,是否进入了查询语句,经历了几次功能。说到函数,在PHP审计中,寻找高风险函数也是最有效的方法之一。常见的高危函数见表2。

表2常见的高风险函数

在开源程序中,它显得更为次要。可想而知,如果需要带走的物品很多,但一次拿的不多,可以分两次拿走。第二次也是如此。将一次攻击分成两次,但可以达到同样的目的,而且这种隐蔽性比较高,在大中型的腾云网络中经常出现。脑力,也是对审核员耐心和体力的考验。

Tag: php 代码格式化 xss
网站制作公众号

宿迁腾云网络网站建设公司 | 网站开发 | 网站制作 | 网站优化

咨询电话:13160355545

上一篇

返回栏目

下一篇

免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。

热推

  • xampp查看php版本 IIS配置的PHP运行环境
  • php 代码格式化工具Twig模板的改进禁用关闭关闭标签自动补全的新选项php代码格式化
  • 2018什么是真正的全栈工程师,他们需要掌握更多的编程语言吗?
  • php语言培训学校学习PHP,去参加专业的PHP培训好吗??传智播客php培训 韩忠康 php视频教程
  • 网站后台管理系统php如何从零开始下手做网站,购买一个好域名网站的实施步骤网站后台模板 php
  • php网页计数器代码一下PHP网站优化以及其他的一些优化网站技巧PHPphp网页版聊天室代码
  • 用php开发的网站新手怎么利用伪原创插件快速打造原创内容,才能快速上手php开发网站api接口
  • WooCommerce 3.7推出新版块,更新最低WordPress和PHP要求
  • 2016年9月最受欢迎编程语言排行榜数据分析
  • PHP静态页面教程(模板及模板解析)(组图)

相关

了解常见PHP应用程序安全威胁,掌握6个常见安全性攻击

了解常见PHP应用程序安全威胁,掌握6个常见安全性攻击

如何查看php版本?多种方法助你快速知晓

如何查看php版本?多种方法助你快速知晓

PHP格式化:提升代码质量与协作效率的关键规则

如何查看虚拟主机上的 PHP 版本?这篇文章告诉你

Linux 系统管理员和 web 开发者必知:如何查看 PH

Linux 系统管理员和 web 开发者必知:如何查看 PH

免费开源的轻量级 PHP 开发框架 ThinkPHP,遵循

从零开始开发完整网站:前端、后端与 Web 服务器的关键技术

php框架 Java 与 PHP 之争:为何懂技术的大佬选

BitDefender 发布超级工厂病毒专杀工具,可清除所有

asp语言与php语言的区别 前端和后端的区别,你真的了解吗

标签

seo(1182) 市场营销(661) 网站制作(573) 网站建设(564) 搜索引擎(553) 网站(482) PHP(361) 编程语言(345) 建站(294) 关键词排名优化(267) 网站建设公司(245) 优化(216) seo排名(207) 域名(190) 软件(171) 网站优化(148) 搜索引擎优化(146) 外链(141) 科技(136) 网站关键词(124) 网站排名优化(123) 域名服务器(120) 网站排名(107) 时政(103) 排名优化(95) 搜索引擎收录(93) 网站设计(92) 电子商务(88) 引擎(86) 移动互联网(85) 开发框架(79) 开发(75) 网站服务器(74) 框架(68) 前端开发(68) 网站分析(66) 网站建设方案(65) 关键(64) 流量(63) 源码(62) 百度优化(62) 网站权重(61) 开放源代码(59) seo培训(53) 网页设计(51) 百度(51) php框架(50) 网站建设知识(50) 大数据(50) 谷歌(49)
宿迁腾云网络网站建设公司
网站建设
  • 私人定制
  • 标准模板建站
  • 经济模板建站
精品模板

宿迁腾云网络网站建设公司

联系电话:13160355545

公司地址:江苏省宿迁市丽景湾华庭北门都市花园公寓9楼907

联系邮箱:admin@tyweb.net

全国分站
  • 北京
  • 广东
  • 东莞 广州 中山 深圳 惠州 江门 珠海 汕头 佛山 湛江 河源 肇庆 潮州 清远 韶关 揭阳 阳江 云浮 茂名 梅州 汕尾
  • 山东
  • 济南 青岛 临沂 济宁 菏泽 烟台 泰安 淄博 潍坊 日照 威海 滨州 东营 聊城 德州 莱芜 枣庄
  • 江苏
  • 苏州 徐州 盐城 无锡 南京 南通 连云港 常州 扬州 镇江 淮安 泰州 宿迁
  • 河南
  • 郑州 南阳 新乡 安阳 洛阳 信阳 平顶山 周口 商丘 开封 焦作 驻马店 濮阳 三门峡 漯河 许昌 鹤壁 济源
  • 上海
  • 河北
  • 石家庄 唐山 保定 邯郸 邢台 沧州 秦皇岛 张家口 衡水 廊坊 承德
  • 浙江
  • 温州 宁波 杭州 台州 嘉兴 金华 湖州 绍兴 舟山 丽水 衢州
  • 陕西
  • 西安 咸阳 宝鸡 汉中 渭南 安康 榆林 商洛 延安 铜川
  • 湖南
  • 长沙 邵阳 常德 衡阳 株洲 湘潭 永州 岳阳 怀化 郴州 娄底 益阳 张家界 湘西
  • 重庆
  • 福建
  • 漳州 泉州 厦门 福州 莆田 宁德 三明 南平 龙岩
  • 天津
  • 云南
  • 昆明 红河 大理 文山 德宏 曲靖 昭通 楚雄 保山 玉溪 丽江 临沧 思茅 西双版纳 怒江 迪庆
  • 四川
  • 成都 绵阳 广元 达州 南充 德阳 广安 阿坝 巴中 遂宁 内江 凉山 攀枝花 乐山 自贡 泸州 雅安 宜宾 资阳 眉山 甘孜
  • 广西
  • 贵港 玉林 北海 南宁 柳州 桂林 梧州 钦州 来宾 河池 百色 贺州 崇左 防城港
  • 安徽
  • 芜湖 合肥 六安 宿州 阜阳 安庆 马鞍山 蚌埠 淮北 淮南 宣城 黄山 铜陵 亳州 池州 巢湖 滁州
  • 海南
  • 三亚 海口 琼海 文昌 东方
  • 江西
  • 南昌 赣州 上饶 吉安 九江 新余 抚州 宜春 景德镇 萍乡 鹰潭
  • 湖北
  • 武汉 宜昌 襄樊 荆州 恩施 孝感 黄冈 十堰 咸宁 黄石 仙桃 随州 天门 荆门 潜江 鄂州 神农架
  • 山西
  • 太原 大同 运城 长治 晋城 忻州 临汾 吕梁 晋中 阳泉 朔州
  • 辽宁
  • 大连 沈阳 丹东 辽阳 葫芦岛 锦州 朝阳 营口 鞍山 抚顺 阜新 本溪 盘锦 铁岭
  • 黑龙江
  • 齐齐哈尔 哈尔滨 大庆 佳木斯 双鸭山 牡丹江 鸡西 黑河 绥化 鹤岗 伊春 大兴安岭 七台河
  • 内蒙古
  • 赤峰 包头 通辽 呼和浩特 乌海 鄂尔多斯 呼伦贝尔
  • 贵州
  • 贵阳 黔东 黔南 遵义 黔西 毕节 铜仁 安顺 六盘水
  • 甘肃
  • 兰州 天水 庆阳 武威 酒泉 张掖 陇南 白银 定西 平凉 嘉峪关 临夏 金昌 甘南
  • 青海
  • 西宁 海西 海东 海北 果洛 玉树 黄南
  • 新疆
  • 乌鲁木齐 伊犁 昌吉 石河子 哈密
  • 西藏
  • 拉萨 山南 林芝 日喀则
  • 吉林
  • 长春 白山 白城 延边 松原 辽源 通化 四平
  • 宁夏
  • 银川 吴忠 中卫 石嘴山 固原
SiteMap
网站地图
TAG标签
Copyright © 2017-2025 TYWEB.NET 宿迁腾云网络科技有限公司 ALL RIGHTS RESERVED.   苏ICP备17033535号-1

热门搜索

百度 下载 2025 2024 2026 货源 货货源 虚拟 禅道 报名 金蝶KIS旗舰版
  • 客服

    在线客服

  • 电话

    13160355545

  • 微信

精品模板
建站费用
成功案例
联系我们