内容介绍

  1. 用scrapy框架编写爬虫,爬取纽约客网站文章,包括文章url、文章标题、作者及发表时间、文章正文、图片等。
  2. 将上述爬取到的信息保存到mysql数据库中。
  3. 将数据库中的文章进行分页展示。
  4. 统计每篇文章正文的单词总数、段落总数、句子总数、词汇总数,并计算平均单词长度(单词字母数)、平均句子长度(句子单词数)、平均段落长度(段落句子数)。

    Read More

0x01

DDCTF比赛形式比较新颖,是解答一道题后会获得一个邮箱,将writeup发送到邮箱后会给你回复下一个题。而且是逆向和web交叉,如果解答不了当前题目就无法进入下一题,它考察一个人的综合技术素养。这个比赛到目前还没有结束,它为期十三天,但是邻近期末,各种结课作业,各种考试接踵而至,早已没有精力和时间再去做它了,所以提前写个博客记录一下比赛心得。

Read More

这是一个32位的程序,并且给了libc。

1
2
$ file pwn1
pwn1: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=cdb7eaa63202024dd348ac15b485b751b55eafa8, not stripped

Read More

这道题的功能就是等Flag judgment system\nInput flag >> 时输入flag,然后和真正的flag进行对比,如果正确就输出Correct flag!!,错误就输出Wrong flag…。同时我们发现这个程序的printf存在格式化字符串漏洞。

Read More

符号执行概述

在学习这个框架之前首先要知道符号执行。
符号执行技术使用符号值代替数字值执行程序,得到的变量的值是由输入变 量的符号值和常量组成的表达式。符号执行技术首先由King在1976年提出 ,经过三十多年的发展,现在仍然被广泛研究,它在软件测试和程序验证中发挥着重 要作用。符号执行是一种重要的形式化方法和静态分析技术,它使用数学和逻辑 首先定义一些基本概念。程序的路径(path)是程序的一个语句序列,这个 语句序列包括程序的一些顺序的代码片段,代码片段之间的连接是由于分支语句 导致的控制转移。一个路径是可行的(feasible),是指存在程序输入变量的至少一组值,如果以这组值作为输入,程序将沿着这条路径执行。否则,路径就是不 可行的(infeasible)。路径条件(path condition,PC)是针对一个路径的,它是一 个关于程序输入变量的符号值的约束,一组输入值使得程序沿着这条路径执行当 且仅当这组输入值满足这条路径的路径条件。具体看这里,链接

Read More

这个程序流程很简单,它有两个功能,一个是read读入数据,一个是write输出数据.
我们发现在sub_80483F4()函数这里存在缓冲区溢出漏洞,buf大小为0x88(136)字节,而read最多可以读入0x100(256)字节。

Read More

这是DEFCON CTF 2015中的一道题,经典的ROP利用。首先我们看一下这个bin文件的一些信息,它是一个64位的ELF文件

1
2
$ file r0pbaby_542ee6516410709a1421141501f03760
r0pbaby_542ee6516410709a1421141501f03760: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, stripped

Read More

预备知识

Hook原理

Hook技术无论对安全软件还是恶意软件都是十分关键的一项技术,其本质就是劫持函数调用。但是由于处于Linux用户态,每个进程都有自己独立的进程空间,所以必须先注入到所要Hook的进程空间,修改其内存中的进程代码,替换其过程表的符号地址。在Android中一般是通过ptrace函数附加进程,然后向远程进程注入so库,从而达到监控以及远程进程关键函数挂钩。从Android的开发来说,Android系统本身就提供给了我们两种开发模式,基于Android SDK的Java语言开发,基于AndroidNDK的Native C/C++语言开发。所以,我们在讨论Hook的时候就必须在两个层面上来讨论。对于Native层来说Hook的难点其实是在理解ELF文件与学习ELF文件上,特别是对ELF文件不太了解的读者来说;对于Java层来说,Hook就需要了解虚拟机的特性与Java上反射的使用。

Read More