• SCTF 2015 pwn试题分析


    Re1

    是一个简单的字符串加密。程序使用了多个线程,然后进行同步。等加密线程加密好了之后才会启动验证线程。这个题比较坑的是IDA F5出来的结果不对,不知道是不是混淆机制。

    刚开始看的是F5后的伪代码,一脸懵逼。后来看了下汇编才明白是怎么回事。

    解密直接打表就可以,也可以写逆算法。

    pwn1

    checksec看了一下保护机制,有canary+nx保护。漏洞是一个简单的栈溢出,但是没有办法劫持程序的流程。

    因为flag已经被读到了内存中了,所以就想到去leak出来。后来知道有一种ssp leak的玩法,就是故意触发canary保护,

    而这个保护机制会输出argv[]中的程序名,由于栈中argv[]是系统调用主函数的参数,栈帧肯定在当前的高地址处,所以在栈中一定可以覆盖的到。

    于是就可以去覆盖了。exp的构造是exp=junk+flag的指针。

    pwn2

    这道题开始时懵逼了一下,因为格式化字串漏洞之前接触的都是格式化串储存在栈里的。而这道题的格式化串是储存在bss段里的。格式化字串漏洞是要想向任意地址写,而格式化串不在栈里地址就没法指定了,这样就很尴尬了。

    后来想到可以先向栈里写入一个要写入的地址,相当于构造一个跳板。但是这样做的前提是栈里得有一个指向栈中的指针,调试起来一看,还真的有这样的指针。

    于是就可以构造了。

    因为读完之后马上就会调用fflush(),所以这里我就直接写入got表了。而system函数题中已经提供了,连参数都已经push好了。直接把地址盖过去就可以了。

    两个格式字符串是

    "%134525283x%4$n"

    "%134520973x%12$n"

  • 相关阅读:
    Laravel 5.5 创建全局公共函数
    Mysql性能优化四:分库,分区,分表,你们如何做?
    Mysql性能优化三:主从配置,读写分离
    Mysql性能优化二:索引优化
    Mysql性能优化一:SQL语句性能优化
    Windows Server 2008 R2(x64) IIS7+PHP5(FastCGI)环境搭建
    centos7使用Gogs搭建Git服务器
    CentOS虚拟机和物理机共享文件夹实现
    Flask目录
    MySQL目录
  • 原文地址:https://www.cnblogs.com/Ox9A82/p/5483916.html
Copyright © 2020-2023  润新知