-
-
[原创]攻防世界PWN新手区:hello_pwn
-
发表于: 2022-4-4 12:42 6269
-
题目描述:pwn!,segment fault!菜鸡陷入了深思
常规的file和check
然后运行一下,查看大概流程:
read函数接受10个字节的字符,存入地址601068处,然后判断60106C处的地址是否为1853186401,跟踪过去601068地址
位于bss段,可以看到read函数接受的地址和后面判断的地址(dword_60106C)在一坨,所以我们这里可以在read接收值时覆盖掉后面的空间就行。
__int64 __fastcall main(
int
a1, char
*
*
a2, char
*
*
a3)
{
alarm(
0x3Cu
);
setbuf(stdout,
0LL
);
puts(
"~~ welcome to ctf ~~ "
);
puts(
"lets get helloworld for bof"
);
read(
0
, &unk_601068,
0x10uLL
);
if
( dword_60106C
=
=
1853186401
)
sub_400686();
return
0LL
;
}
__int64 __fastcall main(
int
a1, char
*
*
a2, char
*
*
a3)
{
alarm(
0x3Cu
);
setbuf(stdout,
0LL
);
puts(
"~~ welcome to ctf ~~ "
);
puts(
"lets get helloworld for bof"
);
read(
0
, &unk_601068,
0x10uLL
);
if
( dword_60106C
=
=
1853186401
)
sub_400686();
return
0LL
;
}
.bss:
0000000000601068
unk_601068 db ? ; ; DATA XREF: main
+
3B
↑o
.bss:
0000000000601069
db ? ;
.bss:
000000000060106A
db ? ;
.bss:
000000000060106B
db ? ;
.bss:
000000000060106C
dword_60106C dd ? ; DATA XREF: main
+
4A
↑r
.bss:
000000000060106C
_bss ends
.bss:
0000000000601068
unk_601068 db ? ; ; DATA XREF: main
+
3B
↑o
.bss:
0000000000601069
db ? ;
.bss:
000000000060106A
db ? ;
.bss:
000000000060106B
db ? ;
.bss:
000000000060106C
dword_60106C dd ? ; DATA XREF: main
+
4A
↑r
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2022-4-4 12:45
被宇宙大魔王编辑
,原因:
赞赏
他的文章
- 关于迷宫题的一些求解思路 11225
- [原创]攻防世界PWN新手区:int_overflow 7860
- [原创]攻防世界PWN新手区:guess_num 11574
- [原创]攻防世界PWN新手区:level2 11850
- [原创]攻防世界PWN新手区:level0 6145
谁下载
无
谁下载
无
看原图
赞赏
雪币:
留言: