当前位置:网站首页>[BMZCTF-pwn] 12-csaw-ctf-2016-quals hungman
[BMZCTF-pwn] 12-csaw-ctf-2016-quals hungman
2022-07-06 10:43:00 【Shi Shi Shi Shi Shi Shi Shi Shi Shi Shi Shi Shi Shi Shi Shi Shi】
Guess this question or 2.23 ( I'm not going to do it , None of the above questions has a remote environment , And these seem to have been done )
This is a silly word game. The data structure is like this :
- chunk0 Write the largest name you enter 0xf8( It can be small )
- Program record :4 Byte record ,4 Byte name length ,8 Byte name chunk0 The pointer to
- A random number as long as its name
Enter your name first , Then line it into random numbers , Then wait for characters , If there is the same score , altogether 26 How can it be the same if you lose all , When the maximum record is exceeded, the name can be modified ( There is an overflow )
puts("High score! change name?");
__isoc99_scanf(" %c", &v3);
if ( v3 == 121 )
{
s = malloc(0xF8uLL);
memset(s, 0, 0xF8uLL);
v8 = read(0, s, 0xF8uLL);
*(_DWORD *)(a1 + 4) = v8;
v14 = strchr((const char *)s, 10);
if ( v14 )
*v14 = 0;
memcpy(*(void **)(a1 + 8), s, v8); // Name length is less than F8 when , You can enter F8 Overflow to record
free(s);
It's easy to control the overflow to the pointer
Overflow first, write the pointer as got An address of the table , The following output will output the value , So you get libc Address .
The question is which to write , According to the later function call, you can use snprintf and strchr, After looking at the original one, I used libc_start_main
strchr Just use it here once , Let's start with the leak libc Change it to system, Enter next time /bin/sh
Write libc_start_main Then there is gmon_start and memcpy Write here /bin/sh\0,0,system In fact, it uses system cover memcpy In execution memcpy The inner parameter is exactly /bin/sh( This is a coincidence )
If you use snprintf You can also restore the whole got Watch then turn /bin/sh writes 602100
printf Words , Didn't try to write one_gadget Maybe it's ok
边栏推荐
- Complete web login process through filter
- [unity] simulate jelly effect (with collision) -- tutorial on using jellysprites plug-in
- MySQL35-主从复制
- Security design verification of API interface: ticket, signature, timestamp
- Texttext data enhancement method data argument
- Mysql35 master slave replication
- [leectode 2022.2.13] maximum number of "balloons"
- MySQL21-用户与权限管理
- CSDN问答标签技能树(二) —— 效果优化
- A brief introduction to the microservice technology stack, the introduction and use of Eureka and ribbon
猜你喜欢
Implement context manager through with
CSDN问答标签技能树(一) —— 基本框架的构建
[Julia] exit notes - Serial
MySQL combat optimization expert 02 in order to execute SQL statements, do you know what kind of architectural design MySQL uses?
Implement sending post request with form data parameter
Bytetrack: multi object tracking by associating every detection box paper reading notes ()
Moteur de stockage mysql23
ZABBIX introduction and installation
Just remember Balabala
MySQL23-存儲引擎
随机推荐
解决扫描不到xml、yml、properties文件配置
In fact, the implementation of current limiting is not complicated
使用OVF Tool工具从Esxi 6.7中导出虚拟机
Emotional classification of 1.6 million comments on LSTM based on pytoch
MySQL combat optimization expert 02 in order to execute SQL statements, do you know what kind of architectural design MySQL uses?
【C语言】深度剖析数据存储的底层原理
Pytoch LSTM implementation process (visual version)
Solve the problem that XML, YML and properties file configurations cannot be scanned
Mysql27 - Optimisation des index et des requêtes
CSDN-NLP:基于技能树和弱监督学习的博文难度等级分类 (一)
Windchill configure remote Oracle database connection
MySQL23-存儲引擎
windows无法启动MYSQL服务(位于本地计算机)错误1067进程意外终止
Download and installation of QT Creator
Mysql33 multi version concurrency control
How to change php INI file supports PDO abstraction layer
Software test engineer development planning route
CSDN问答模块标题推荐任务(一) —— 基本框架的搭建
MySQL21-用户与权限管理
MySQL transaction log