20155235 《网络攻防》 实验一 逆向及Bof基础实践说明

实验目的

本次实践的对象是一个名为pwn1的linux可执行文件。

该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串。

该程序同时包含另一个代码片段,getShell,会返回一个可用Shell。正常情况下这个代码是不会被运行的。我们实践的目标就是想办法运行这个代码片段。我们将学习两种方法运行这个代码片段,然后学习如何注入运行任何Shellcode

三个实践内容如下:

手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数。

利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发getShell函数。

注入一个自己制作的shellcode并运行这段shellcode。

这几种思路,基本代表现实情况中的攻击目标:

运行原本不可访问的代码片段

强行修改程序执行流

以及注入运行任意代码。

教材学习中的问题和解决过程

  • 问题1:怎样避免死锁
  • 问题1解决方案:互斥锁加锁顺序规则

代码托管

(statistics.sh脚本的运行结果截图)

上周考试错题总结

结对及互评

点评模板:

  • 博客中值得学习的或问题:

    • xxx
    • xxx
    • ...
  • 代码中值得学习的或问题:
    • xxx
    • xxx
    • ...
  • 其他

本周结对学习情况

- [结对同学学号1](博客链接)
- 结对照片
- 结对学习内容
- XXXX
- XXXX
- ...

其他(感悟、思考等,可选)

xxx

xxx

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 1/1 10/10
第二周 200/200 1/1 20/20
第三周 ?/200 1/1 15/20
第四周 200/200 1/1 20/20
第五周 100/200 1/1 20/20
第六周 200/200 1/1 20/30
第七周 500/500 1/1 20/20
第八周 300/300 1/1 15/30

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。

耗时估计的公式

:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:30小时

  • 实际学习时间:15小时

  • 改进情况:

(有空多看看现代软件工程 课件

软件工程师能力自我评价表
)

参考资料

最新文章

  1. 【Swift 2.1】共享文件操作小结(iOS 8 +)
  2. Xcode中的Version和Build的区别
  3. mysql如果数据不存在,则插入新数据,否则更新的实现方法
  4. DockerProblem
  5. python 代码片段20
  6. 【卡西欧Fx-5800p】市场分析 ppt
  7. (1)opengl-nehe 4种框架
  8. grab jpegs from v4l2 devices
  9. 网站优化指南之数据库缓存、CDN与云存储
  10. 对mysql进行分表
  11. Android Support库百分比布局
  12. java设计模式--结构型模式--装饰模式
  13. MySQL的数据类型【总结】
  14. Oracle与Mysql时间格式化
  15. linux小实验-考勤模拟程序
  16. mybatis中 keyProperty="id" 的作用
  17. JS数据类型之Number类型
  18. 安装使用阿里云的yum源
  19. java基础 ---- 练习for循环
  20. mac安装navicat mysql破解版

热门文章

  1. 【日常记录】Unity3D 中的 Surface Shader 是不支持在 Pass中使用的,因为自动生成了 Pass
  2. DELETE语句总结
  3. Oracle案例10——HWM(高水位线)性能优化
  4. 关于easyUI的一些js方法
  5. OpenGLES渲染
  6. Redis学习---Redis的免密操作
  7. Linux bzip2命令详解
  8. November 24th 2016 Week 48th Thursday
  9. print in或者not in, 判断在不在里面
  10. 18年11月5日 NOIP模拟赛