测试第14天

Hello world,hello blog!

Posted by 吴柚 on March 4, 2019

#

漏洞利用

(1)利用程序本身存在的漏洞获取程序的控制权

      > 本地利用 > 远程利用

(2)CTF中称为pwn

  >  做题中大多都是给你一段不长的代码,让你分析其中的漏洞点在哪,然后利用自己写的脚本利用漏洞,达到自己所要的目的。

  ?  现实中的pwn和CTF中的pwn是有关联的,CTF中的pwn经常是由现实中一些较复杂的pwn中抽取一部分,然后来进行分析j解题,经过CTF的训练后,可以尝试去解决实际中的一些pwn问题。

(3)有用的工具

  >  IDA
  >  Gdb
  >  Pwntools
  >  Qira
  >  Objdump

(4)Buffer Oveflow

  > 因为程序本身没有正确检查输入数据的大小,造成攻击者可以输入比buffe还要大的数据,使得超出部分覆盖程序的其他部分,影响程序执行。
 
  > 栈溢出 专指发生在栈上的溢出

  > 需要进行的操作:覆盖返回地址和控制参数

  > 不管是什么漏洞,如果能重新找出stack overlow,之后就是标准动作了。

(5)可以做什么

  > 控制程序的执行,做出非预期的行为

  > Control-Flow Hijack

  > Return Oriented Programming

  > 执行Shellcode

(6)关键点

  > 覆盖返回地址

  > 知道溢出点在哪 输入刚好输多少位才能覆盖返回地址

  > 找偏移

  > 拿到系统的shell就相当于拿到了系统的权限 

(7)解题办法

  > 1:计算offset,利用qira输入大量的值,当报错时,去查看esp堆栈中地址,采用数的方法看第一个输入一共偏移多少才能到达返回地址;

  > 2:赋值,自己去写shellcode

(8)学习的知识

  > C语言/汇编

  > 计算机组成原理(深入理解计算机系统)

  > 漏洞战争

  > 0day安全

(9)刷题网址

  > http://pwnable.kr/

  > http://pwnable.tw/