当前位置: 首页 > news >正文

proxy网站视频剪辑培训机构

proxy网站,视频剪辑培训机构,企业网站的发展历史,能赚钱的网站怎么做目录 环境搭建 无锁无事务的竞争攻击复现 无锁有事务的竞争攻击复现 悲观锁进行防御 乐观锁进行防御 环境搭建 首先我们安装源码包:GitHub - phith0n/race-condition-playground: Playground for Race Condition attack 然后将源码包上传到Ubuntu 为了方便使…

目录

环境搭建

无锁无事务的竞争攻击复现

无锁有事务的竞争攻击复现

悲观锁进行防御

乐观锁进行防御


环境搭建

首先我们安装源码包:GitHub - phith0n/race-condition-playground: Playground for Race Condition attack

然后将源码包上传到Ubuntu

为了方便使用我们可以对文件进行重命名

解压

unzip race-condition-playground-main.zip

备份env文件

root@utuntu000:~/race-condition# cp .env.default .env.default.bak
root@utuntu000:~/race-condition# mv .env.default .env

修改env文件内容:

原:DEBUG=true //因为这里不对
修改后:DEBUG=True

安装需要的库:

pip3 install -r requirements.txt 

注:可以使用豆瓣源来下载,速度更快

生成数据表:migrate:

python3 manage.py migrate

 

使用python生成前端代码:

python3 manage.py collectstatic

使用python创建用户:

python3 manage.py createsuperuser

运行:

gunicorn -w 2 -k gevent -b 0.0.0.0:8080 race_condition_playground.wsgi
[2023-11-13 16:44:25 +0800] [9072] [INFO] Starting gunicorn 21.2.0
[2023-11-13 16:44:25 +0800] [9072] [INFO] Listening at: http://0.0.0.0:8080 (9072)
[2023-11-13 16:44:25 +0800] [9072] [INFO] Using worker: gevent
[2023-11-13 16:44:25 +0800] [9075] [INFO] Booting worker with pid: 9075
[2023-11-13 16:44:25 +0800] [9076] [INFO] Booting worker with pid: 9076

注:如果没有gunicorn工具,可以使用pip3 linstall 来安装

然后我们就可以尝试访问这个后台

然后我们就可以尝试访问一下admin

我们输入账号密码,成功的登录到了后台页面

我们现在就可以给用户增加一些钱:

然后我们在URL中访问

http://192.168.159.219:8080/ucenter/1/

 

我们尝试在amount中输入100

这里可以看到我们提交的金额大于所拥有的金额,会直接报错

无锁无事务的竞争攻击复现

我们首先进入到:/root/race-condition/templates

将form表单的提交方式修改为form-data流的形式

输入金额

先使用Burpsuite进行抓包(浏览器开启代理)

点击提交后

赋值内容,然后DROP这个包

关闭代理,再去查看一下金额:发现金额并没有改变

然后打开Yakit软件

点击本地的这个项目->打开项目,或看到这样一个页面

然后就来到了这里,然后将前面抓到的数据粘贴进这里:

POST /ucenter/1/ HTTP/1.1
Host: 192.168.159.219:8000
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer: http://192.168.159.219:8000/ucenter/1/
Content-Type: multipart/form-data; boundary=---------------------------366213157039382255462597162624
Content-Length: 366
Origin: http://192.168.159.219:8000
Connection: close
Cookie: __tins__21208037=%7B%22sid%22%3A%201699867069692%2C%20%22vd%22%3A%2011%2C%20%22expires%22%3A%201699870531399%7D; __51cke__=; __51laig__=11; csrftoken=PqAPXKFwTwIlbNyqhrelYxqbWgKPtsKjXdlcwxe3TqCfxT44ecNu3QLFhZWnRiaQ; sessionid=3kx07mweulpr4559s5gyfte6d2whwfna
Upgrade-Insecure-Requests: 1
​
-----------------------------366213157039382255462597162624
Content-Disposition: form-data; name="amount"
​
10
-----------------------------366213157039382255462597162624
Content-Disposition: form-data; name="csrfmiddlewaretoken"
​
2s3TnpbX4HE23G8XhBfoAaoyTXKUklEmafOgWcKu4ByWpMEBemOxFtJ2eGWsIb4T
-----------------------------366213157039382255462597162624--

可以将一些没有用的东西删除掉,删除完成后:

POST /ucenter/1/ HTTP/1.1
Host: 192.168.159.219:8000
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0
Content-Type: multipart/form-data; boundary=---------------------------366213157039382255462597162624
Cookie: __tins__21208037=%7B%22sid%22%3A%201699867069692%2C%20%22vd%22%3A%2011%2C%20%22expires%22%3A%201699870531399%7D; __51cke__=; __51laig__=11; csrftoken=PqAPXKFwTwIlbNyqhrelYxqbWgKPtsKjXdlcwxe3TqCfxT44ecNu3QLFhZWnRiaQ; sessionid=3kx07mweulpr4559s5gyfte6d2whwfna
Upgrade-Insecure-Requests: 1
​
-----------------------------366213157039382255462597162624
Content-Disposition: form-data; name="amount"
​
10
-----------------------------366213157039382255462597162624
Content-Disposition: form-data; name="csrfmiddlewaretoken"
​
2s3TnpbX4HE23G8XhBfoAaoyTXKUklEmafOgWcKu4ByWpMEBemOxFtJ2eGWsIb4T
-----------------------------366213157039382255462597162624--

然后进行并发配置,然后发送

但是这里并没有测试成功,我们删除这条日志:

然后再为yps用户增加10块钱,用于测试

然后我们可以再次测试:

我们可以将重复发包数修改为1000再次尝试,但是还是没有成功(重复以上操作,直到成功)

可以看到,这里转发了两次,我们再看看日志

这里很明显购买了两次,我们只有10块钱,却购买了两次10块钱的东西,这里成功的利用竞争漏洞实现了攻击!

无锁有事务的竞争攻击复现

我们可以在源代码中增加事务(注:本代码中已经有了,不需要手动添加):

class WithdrawView2(BaseWithdrawView):success_url = reverse_lazy('ucenter:withdraw2')@transaction.atomicdef form_valid(self, form):amount = form.cleaned_data['amount']self.request.user.money -= amountself.request.user.save()models.WithdrawLog.objects.create(user=self.request.user, amount=amount)return redirect(self.get_success_url())

然后删除之前的日志,然后为用户增加10元

重新抓包,相同的方法放到Yakit软件中

然后还是一样反复的使用对线程并发的发送请求:(多试试几次)

可以看到,还是出现了多个302跳转,说明事务无法阻止竞争型漏洞

从日志中也可以看到,成功了!

悲观锁进行防御

代码中的3页面就是使用了悲观锁进行防御

还是像上面一样来测试

这里就只展示多线程访问的结果:

可以看到只有一个302跳转,我们尝试多次也是这个结果,说明成功的访问到了

查看日志也可以看到是正常的:

但是这里还有一个问题就是:悲观锁会把读和写都锁住,性能会收到影响,那么我们就可以使用乐观锁进行防御

乐观锁进行防御

代码中的4页面就是使用了乐观锁进行防御

代码中的3页面就是使用了悲观锁进行防御

还是像上面一样来测试

这里就只展示多线程访问的结果:

这里的结果与悲观锁的结果是差不多的只有一个302跳转,我们尝试多次也是这个结果

乐观锁就是我们结果这个Race Condition漏洞的防御方案了!

但是我们还是要知道的是乐观锁并没有悲观锁安全,但是乐观锁的性能比悲观锁好

http://www.hrbkazy.com/news/51811.html

相关文章:

  • 淘宝客导购网站长沙百度快照优化排名
  • 四网合一网站建设百度搜索量怎么查
  • 婚庆公司网站建设最好的免费建站网站
  • 北京营销型网站建设百度网站收录提交
  • 免费的好网站网络seo优化推广
  • 国家住房和城乡建设委员会网站良品铺子网络营销策划书
  • 礼服购物车网站模板百度指数热度榜
  • 网站怎么做图片按按钮跳转网站流量统计系统
  • 如何做有亮点的网站建设方案今日头条关键词工具
  • 做学校网站会下线吗优化大师使用心得
  • 有哪些网站做的比较好优化seo招聘
  • 自助wap建站陕西网站建设制作
  • 网站主办者和所有者区别aso关键词排名优化是什么
  • 发卡平台wordpress淘宝优化标题都是用什么软件
  • 建设银行信用卡在网站激活后如何设置密码排名第一的玉米品种
  • 无锡网站建设推广服务腾讯朋友圈广告代理
  • 北京火车站建站时间上海seo关键词优化
  • 网站建设培训个人如何把自己的网站推广出去
  • 国内永久免费crm系统网站推荐大全seo独立站优化
  • 如何自己做摄影网站哪个平台视频资源多
  • 查公司查企业用什么网站公司网站建设北京
  • 想自己做个网站怎么做常州网络推广seo
  • 香港服务器做盈利网站营销策划推广公司
  • 重庆万州网站建设广告咨询
  • 网站开发公司怎么接单子易观数据app排行
  • 做网站要服务器和什么网络推广的方法有多选题
  • 精准引流推广公司重庆网站页面优化
  • 商业网站建立百度推广一年大概多少钱
  • 网站有权重可以对title做更改推广系统
  • 电子商务企业网站策划大白兔网络营销策划书