有幸bjx师傅又让我参加了一次awd,算是第二次体验awd,又感觉学习到了很多东西。

  第一次打这种模式的时候,我几乎什么都没有做,就给师傅们下载文件,上传文件了。(太菜了)

  昨晚分的组,发现没有人是pwn方向的,那么就只能我一个人来负责pwn了。昨晚和今早简单的学习了一下patch,突然感觉patch比写exp脚本要简单一些。

  今天的比赛也没有写exp拿分,一直在补自己程序的漏洞。

  先说一说pwn1吧

pwn1

  这里有一个这样的知识点,就是在c语言中生成随机数,其实是一个伪随机数,在调用rand之前需要先用srand,而srand是初始化随机数发生器。

  srand() 用来设置 rand() 产生随机数时的随机数种子。参数 seed 必须是个整数,如果每次 seed 都设相同值,rand() 所产生的随机数值每次就会一样。

  这就意味着,现在我可以直接用脚本跑出每次v3的值。

  脚本:

 1 #include<stdio.h>
2 int main()
3 {
4 srand(0);//产生随机数种子
5 int i;
6 for(i=0;i<5;i++)
7 {
8 int rand_num=(rand()%5);
9 printf("%d\n",rand_num);
10 }
11 return 0;
12 }

  

  这样我就知道switch先进入的是3了,那么我们看看3这个函数干了些什么。

  

  大概就是先让你往buf输入东西,然后进入sub13B0函数,s1是返回值,再判断s1和"aXdhbmFmbGFn"是否相等,如果相等就输出flag,这个时候我们就修补read函数的参数,将fd修改成0,这个漏洞就算是patch掉了!

  修改之后

  第一个over,接下来是进入1,看看1干了些什么。

  这里其实就带一点盲猜了,v3大于0x63就执行下面的命令,我就想,不能那么容易被绕过,这里就把0x63修改成了0x99,就让过更难一些,当时具体也没分析出来了,就这样过去了。

  接下来是进入2,2是一个堆题目,我扫了一眼是没发现毛病。。。

  接下来就是0,这里的read是可以进行溢出的,虽然题目开启了canary保护,但是相信师傅们前面就可以leak出来canary,这里想着, 那就多打一次补丁,让buf只能输入两位数吧。

  接下来看到system函数,相必这里也是一个getshell的第一点,但是我觉得patch的差不多了,也就没有再管。到这里就是我对pwn1的全部补丁。接下来看一下pwn2

pwn2

  堆才刚开始学,也不会。。。

  是常见的菜单题,我在delete函数中发现了这个,很明显的一个uaf漏洞,按道理,uaf漏洞修补需要将指针清0,但是这个patch我是真不会打。网上教程也不多,只知道大概思路是将这样的将call free ----> call .eh_frame地址,然后在.eh_frame的地址上写指针清零的汇编,然后写个ret再调回去。这样就不会覆盖其他数据了。

  但是。。。我在.eh_frame上写汇编一直不成功,可能是.eh_frame段没有执行权限的原因,我也不会用ida给.eh_frame段赋执行的权限。。。就卡死了。。。

  记:参加了这次awd确实又学习到不少操作,中间大概有一个半小时,我pwn1没法替换源文件,一直不知道怎么回事,后来重启了一次还不行,重启了第二次才又可以替换了。大概打到后面,pwn1几乎没有失多少分。感觉做的很不错了。pwn2实在不会修复,不过师傅们写脚本写的也慢,最后30分钟的时候,我们的pwn2才被打。也就是最后30分钟pwn2一直被打,pwn1一直安全。唉,还是自己太菜了,一个exp都没有写出来!继续加油了!

最新文章

  1. SharePoint 2013 入门教程
  2. (转)如何在一台电脑上开启多个tomcat 和配置让系统识别哪个具体的tomcat
  3. python 跨模块实现按照文件大小,日期实现日志分割,反转
  4. MySQL- 锁(2)
  5. 向post请求中写入数据,最终保存在了HttpWebRequest.Params中
  6. bootstrap小例子等
  7. AOP学习过程中遇到的问题汇总
  8. Jquery的一些简单使用记录
  9. 关闭discuzX3.2注册页面的注册邮箱验证
  10. Java程序只运行一个实例[转]
  11. 语句调优基础知识-set statistics io on
  12. 【CF487E】Tourists(圆方树)
  13. 什么是Java序列化?如何实现序列化?
  14. Linux系统下公式编辑器KLatexFormula
  15. [vue]webpack使用样式
  16. 将hibernate框架融入到spring框架中
  17. 不越狱安装破解软件,iResign重签名方法
  18. Redis高级命令操作大全--推荐
  19. pythonNet day07
  20. java获去json所有对象

热门文章

  1. [luogu5344]逛森林
  2. [bzoj1037]生日聚会
  3. 数字逻辑实践4-&gt;面向硬件电路的设计思维--FPGA设计总述
  4. 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明
  5. 在Winform框架的多文档界面中实现双击子窗口单独弹出或拖出及拽回的处理
  6. Atcoder Grand Contest 001 D - Arrays and Palindrome(构造)
  7. 矩阵树定理&amp;BEST定理学习笔记
  8. Generic recipe for data analysis with general linear model
  9. Linux实现批量添加用户及随机密码小脚本
  10. IDEA+maven+javafx(java 1.8)入坑记录