BUUCTF PWN 您所在的位置:网站首页 cad基础训练题第一题怎么做 BUUCTF PWN

BUUCTF PWN

2024-07-17 09:11| 来源: 网络整理| 查看: 265

CTF buuoj pwn-----第1题:test_your_nc 前言一. checkesc ,检测文件的保护机制.二. 静态分析,用IDA打开文件三. 回到Linux,直接nc做题总结checksecnc / ncatVimPwntoolschecksec

前言

记录一下pwn的过程 新手学习日记,流水线记录.

打开题目,连接靶机,下载文件’test’

在这里插入图片描述

一. checkesc ,检测文件的保护机制.

checksec在下载好pwntools后就有 参考链接: link. 参考链接: link.

bing@bing-virtual-machine:~/pwn$ checksec test [*] '/home/bing/pwn/test' Arch: amd64-64-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: PIE enabled bing@bing-virtual-machine:~/pwn$

从图上可以看出它是一个64位程序,开了NX防护(堆栈不可执行)

代码中:

Relro:Full Relro(重定位表只读) Relocation Read Only, 重定位表只读。重定位表即.got 和 .plt 两个表。Stack:No Canary found(能栈溢出)NX: NX enable(不可执行内存) Non-Executable Memory,不可执行内存。PIE: PIE enable(开启ASLR 地址随机化) Address space layout randomization,地址空间布局随机化。通过将数据随机放置来防止攻击。 二. 静态分析,用IDA打开文件

IIDA pro 打开test ELF文件

按下shift+f12,打开string window,

发现/bin/sh

在这里插入图片描述

双击/bin/sh, 点击command,点击X,发现/bin/sh的address在main函数里

在这里插入图片描述

点击option->general,勾选相应选项可方便看代码,具体如下:

在这里插入图片描述

按下f5,发现main函数就是一个简单的system函数.直接调用了/bin/sh,所以根据题目提示直接nc就行.

在这里插入图片描述

三. 回到Linux,直接nc做题

简单查看一下nc的用法: nc -help nc的全名是netcat,其主要用途是建立和监听任意TCP和UDP连接,支持ipv4和ipv6。因此,它可以用来网络调试、端口扫描等等

在这里插入图片描述

nc ip地址 ip端口 连接靶机后,ls发现flag,cat得到flag 在这里插入图片描述

flag{000a3b78-286a-411f-bc8e-67e4a25ea890} 总结

参考link

checksec

查看程式開了哪些保護機制

安裝:Pwntools 內建

使用:checksec

nc / ncat 遠端連線工具使⽤ ncat 將程式在靶机连接起來,接著使用 nc 连接使用:nc Vim 編輯器安裝:sudo apt install vim Pwntools

專用於 CTF Exploit的Python Library

包含本地執行、遠程連接、shellcode 生成、ROP 的建構、ELF 解析等功能

安裝: sudo apt install python-pip sudo pip install pwntools

checksec

Relro:Full Relro(重定位表只读) Relocation Read Only, 重定位表只读。重定位表即.got 和 .plt个表。

Stack:No Canary found(能栈溢出) 栈保护。栈溢出保护是一种缓冲区溢出攻击缓解手段。启用栈保护后,函数开始执行的时候会先往栈里插入cookie信息,当函数真正返回的时候会验证cookie信息是否合法,如果不合法就停止程序运行。攻击者在覆盖返回地址的时候往往也会将cookie信息给覆盖掉,导致栈保护检查失败而阻止shellcode的执行。在Linux中我们将cookie信息称为canary。 简单来说就是通过验证cookie,来判断执行的代码是不是恶意代码

NX: NX enable(不可执行内存) Non-Executable Memory,不可执行内存。 原理是将数据所在内存页标识为不可执行,防止因为程序运行出现溢出而使得攻击者的shellcode可能会在数据区尝试执行的情况。NX在咱屡战屡败的经典栈溢出实验中有接触过,NX是对栈和堆的一种保护机制。实验需要关闭NX和地址随机化,否则执行shellcode时,CPU就会抛出异常,而不是去执行恶意指令。Linux系统叫做NX,Windows系统中类似的机制叫DEP(Data Execute Prevention)

PIE: PIE enable(开启ASLR 地址随机化) Address space layout randomization,地址空间布局随机化。通过将数据随机放置来防止攻击。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有