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

固定ip做网站免费手机网站系统

固定ip做网站,免费手机网站系统,自助业务网站系统,私募基金网站建设一个shellcode的网站:Shellcodes database for study cases ret2libc刷题 第二题(ret2libc2) 程序内不存在/bin/sh字符串,估计要通过ROP来操作。这时候不能把字符写栈上,因为有地址随机化什么的。可以写在bss段。 …

一个shellcode的网站:Shellcodes database for study cases

ret2libc刷题

第二题(ret2libc2)

程序内不存在/bin/sh字符串,估计要通过ROP来操作。这时候不能把字符写栈上,因为有地址随机化什么的。可以写在bss段。

而且,gdb也可以直接看plt的内容

还有一个pwn脚本的一个方法:先创建一个ELF对象

里面的变量函数编译的时候都有一个符号,反正和地址联系在一块的,可以用这个语句直接看出来。

特别注意:

因为我们申请了gets函数,所以还要输入bin/sh才行,保险起见可以加一个隔断符。第一个paylaod是来编写栈空间的,和这个gets没关系,因为gets用的自己的栈帧,回来的时候刚好rsp会回来。所以这样可以打通。 

小知识点:gets读到换行符,但是read遇到换行符也会继续读。

第二种payload构造方式

看样子不太能直接控制四个寄存器,来实现值的传递。

这种方式来构造,通用性更强。

原则:用完就扔。看下图,gets的参数显然是buf2,那么根据这个原则,用完buf2之后,我们就把他清理了。首先gets这个函数本身执行的时候主函数就有个ret来将它pop到eip,相当于已经 清理了gets函数。gets函数下面的空白显然会由gest函数执行ret来清理。

就剩buf2没法被清理了。 我们可以用pop|ret这样的指令来清理。pop ebp有点不合适,ebp还有他的用处(虽然已经被覆盖了)严谨起见,我们用pop ebx这样的通用寄存器来清理栈吧。其实就是多了一个回收,相当于

第三题(ret2libc3)

刚下载就发现不对劲了,题目额外给了一个.so文件,估计是动态链接文件。

fflush函数是来清理缓冲区的。strtol,字符串转为长整型。标准输入编号是0,输出是1,错误是2.

还稍微了解了u是unsigned int,这个后续学习整数溢出会使用到。

上图这样的括号就是ida识别到了它的返回数据类型之类的东西,点击\就可以隐藏(转义用的那个斜杠)。int64就是占8字节的int!

寻找栈溢出的思路

输入个超长字符串,一般程序就会段错误之类(如果有栈溢出)

可以通过IDA,复原出相应的栈来,直接输入栈所占的空间,立马可以简易判断出来read之类函数有没有栈溢出。可以看出在子函数时候src被复制到另一个栈之中,这就是栈溢出

如何利用

题目是ret2libc类型的题目,但是却没有system表项和/bin/sh地址。所以只能在libc找到真实的system地址了

现在的CTF一般都是先要给重要地址泄露出,因为直接知道地址了那会变得非常easy了,可能签到提会这么干。

plt相当于代码的执行者,但是got就是保存者,在这里got将发挥巨大作用。实际上,函数没有执行,程序got表项存的是plt地址。也不能直接通过got来泄露出来地址。一般是puts来泄露。这道题有个see_something函数,可以来利用泄露puts的got表地址。

注意,pwngdb的输出在哪里?在最上方!!!

Q:为啥要用这个函数 来泄露。直接下图操作不可以吗?

A:答案有两个方面。1.远程的libc不能保证和本地一样。2.开启了地址随机化。所以本地只可以看偏移量

这是运行的时候的虚拟内存。我们已经泄露了puts的真实地址,根据题目给的另一个附件libc.so找偏移量就好了

步骤

首先创建两个ELF对象

强调下,函数这里接受的是字符串,要用str这个,因为实际上接收到是对应的ASCII码相当于。str(1)='1',实际上就是一个ASCII码

在libc中是用symbols来表示某个表项

(TIPS:调试这个程序的时候,因为see_sth函数遇到无效地址就会崩溃,我们可以任意找个rodata数据过了这一关) 

为了达到攻击效果,可以不择手段,比如有一个字符串flush,我们可以把s地址传过去,就是sh,/bin/sh是绝对地址,但是sh有时候也可奏效

段页管理 

linux默认页大小是4KB,下图是物理内存,在虚拟内存连续的地方,因为分页,在物理内存不一定连续

假设在一个页中puts地址如下所示

所以即使开启地址随机化,相对于页来说puts的地址是相对固定的,就是000+140,那也就是说无论怎么随机化,puts的地址后三位是相对固定的。(对于同一个libc来说) 

http://www.dtcms.com/wzjs/593708.html

相关文章:

  • 电子商务网站基本功能下拉关键词排名
  • 字体设计 创意免费直通车关键词优化口诀
  • 糖果网站建设策划书模板四平网站建设在线咨询
  • 网站建设对网络营销有哪些影响企业形象网站用什么语言开发
  • 网站建设丶seo优化网上商店也叫做
  • 中英文双语网站 滑动切换魅影传说网页游戏开服表
  • 网页制作与网站建设实战教程视频教程如何建设视频资源电影网站
  • 自己做的网站如何让qq登录个人网站备案 内容
  • 高新公司网站建设电话运维工程师的前景如何
  • 深圳深圳网站制作wordpress 3.4.2 漏洞
  • 简约个人网站欣赏wordpress自定义的注册页面模板
  • 洛阳市建设工程评标专家网站网站建设买什么书
  • 自己做微信电影网站怎么做wordpress id从1开始
  • 鞍山做网站的公司crm网站推荐
  • 优秀购物网站建设wordpress漏洞视频
  • 网站开发项目建设规范深圳做网站哪家公司最好
  • 公司网站建设公司海南新闻最新消息
  • 杭州公司注册虚拟地址网站seo策划方案设计
  • 标准网站建设费用wordpress怎么添加语言包
  • 网站开发所涉及的技术创办网站需要哪些步骤
  • 阿里巴巴网站建设论文天津建设培训中心网站
  • 怎样可以做网站saas系统怎么读
  • 南昌企业网站开发oppo软件商店网页入口
  • 新手可以自己学做网站设计吗坪山网站建设平台
  • 做h5好点的网站网站的建设好处
  • 响应式网站研究现状网站建设公司怎么寻找客户呢
  • 网站建设管理员温州做网站老师
  • 关于网站建设的合同范本html社交网站模板
  • 成都建站哪家好广州企业建站找哪家
  • 25个网站响应式网站和平时网站的区别