首页
社区
课程
招聘
Pwn 学习第五课打卡!

原提问者:hackbs 2020-7-12

 

0x00 概述:
[
printf格式化字符串并且在控制台中输出,
最常用的方式
{

 

#include <stdio.h>
int main(int argc,char *argv[])
{
//格式化整型、字符串、地址输出
printf("%d-%s-%p",123,"123",0x123456);
}
}
]

 

0x01:现成漏洞的原因
{
printf也是一个函数,我们知道在汇编里面,其实就是CALL 一个地址,然后CALL地址前,都会压入(push)参数进去,push的顺序是先进后出,先把函数参数的最后push进去,然后最后把第一个参数给push进去。

 

//所以在调用Printf函数时候,如果格式化输出,后面没有跟参数比如
printf("%s");

 

#首先printf会进行格式化字符串的解析,从参数里面获取和符号进行匹配,然后输出到屏幕上

 

#如果说没有参数,那么CALL的上一层栈地址数据就会被输出来(导致泄漏)!
}

收藏
0条回答
零基础入门pwn
  参与学习     1767 人
  提问次数     35 个
《零基础入门pwn》,短时间内踏入漏洞利用的大门,快速成为一名合格的pwn题选手
我的问答 领取收益
0
我的提问
0
我的回答
0
学习收益