反射中的方法
1
2
3
4public void execute(String className, String methodName) throws Exception {
Class clazz = Class.forName(className);
clazz.getMethod(methodName).invoke(clazz.newInstance());
}获取类的方法
forName
、obj.getClass()
实例化类对象的方法
newInstance
获取函数的方法
getMethod
执行函数的方法
invoke
XXE漏洞总结
XML外部实体注入漏洞。
-
读取文件
1
2
3
4
5
<user><username>&test;</username><password>dorvin</password></user>
通过Flash进行钓鱼
通过文件上传Getshell思路
某核酸检测信息查询平台的漏洞发现
PHP过滤函数缺陷
==与===
==
不比较类型,===
比较类型。md5
1
2
3
4
5if($_GET['name'] != $_GET['password']) {
if(MD5($_GET['name']) == MD5($_GET['password'])) {
echo $flag;
}
}科学计数法
如果一个字符串为
合法数字+e+合法数字类型
,将会解释为科学计数法的浮点数。那么只要找到字符串的MD5值为
0e
开头的,即可绕过。如:name=QNKCDZO&password=240610708
。但是这种方法只能在
==
情况下绕过,因为===
是会比较类型,而MD5
函数返回的是字符类型,无法转换成数字。数组
md5
函数无法处理数组,如果传入的为数字,会返回NULL。如:name[]=1&password[]=2
。这种绕过在===
的情况下也可以使用。