保命测试之文件操作篇

前言

其实这样的总结我早就想了,因为看到了太多了不太合规的测试了。(以下仅个人意见,有错误的请各位指出。)

文件操作

文件上传

推荐上传一个访问一次之后自删除的脚本,如果无删除权限时,由于其只输出当前时间,也不会造成太大危害(也方便验证,如果显示当前时间则证明脚本能解析)。

ASP

<%
Response.Write now()
CreateObject("Scripting.FileSystemObject").DeleteFile(server.mappath(Request.ServerVariables("SCRIPT_NAME")))
%>

ASPX

<%@Page Language="C#"%>
<%
Response.Write(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
System.IO.File.Delete(Request.PhysicalPath);
%>

PHP

<?php
date_default_timezone_set("Asia/Shanghai");
echo date("Y-m-d H:i:s",time());
unlink(__FILE__);
?>

JSP

<%@page import="java.text.*,java.util.*,java.io.*"%>
<%
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
out.println(df.format(new Date()));
File file = new File(application.getRealPath(request.getServletPath()));
file.delete();
%>

文件删除

自己上传文件,然后删除自己上传文件。如果自己无法上传,则不要测试。(也别删除别人的图标或者README.txt之类的文件)

文件覆盖

自己上传文件,然后覆盖自己上传文件。如果自己无法上传,则不要测试。(也别覆盖别人的图标或者README.txt之类的文件)

4 个赞

我一般用的是字符串输出<?php echo TestHtml; ?>,还自带免杀 :rofl: :rofl: :rofl:

如果你要提交报告,别人是无法了解你这个php是能不能解析的。

echo函数执行了呀,浏览器查看源码只有TestHtml字符串,没有echo函数的

这个东西,在xray的poc编写里也有提到部分https://xray.cool/xray/#/guide/high_quality_poc

你上传无法解析的php,内容为TestHtml,也会显示TestHtml。会造成误报。

嗯,这个东西其实跟扫描器的检测很类似的