记事本

stegano attachment

http://www.wechall.net/challenge/training/stegano/attachment/index.php 下载图片,用Stegsolve打开,发现有additional bytes,共136。于是 tail -c 136 attachment.jpe > 1.zip 解压后得到密码 但是后来看论坛,直接解压图片都可以。因为 zips sto...

+Ma’s reversing

level 0 看html源码,信息在注释里面,用的是substitution。 在http://www.quipqiup.com/index.php,得到 ”THE PASSWORD IS THE SURNAME OF THE MAN WHO SAID THE HIGHEST KNOWLEDGE IS TO KNOW THAT WE ARE SURROU...

HackThis!! main

level 9 点开request页面,发现要提交邮箱地址;提交我们的不行,再检查发现还有hidden的一个地址;修改使其显示出来,然后两个都改为我的邮箱再提交就好。

Training: WWW-Rewrites

http://www.wechall.net/challenge/training/www/rewrite/index.php 比www-basic复杂的是,我们要url rewrite。这需要在httpd.conf里去掉rewrite_module的注释,并且加上 RewriteEngine on RewriteRule ^/nabla/([0-9]+)_mul_([0-9]+).ht...

Training: WWW-Basics

http://www.wechall.net/challenge/training/www/basic/index.php 由于我的机子在内网,所以要先在路由器里设虚拟服务器。ip地址设为我的机子在内网的地址,端口80。然后把要求的文件放到对应地方即可 此外,在httpd.conf里,要把监听的设好,Listen 80

manpage4

这道题从第一次看到,到现在已经好久了…… 首先,这个游戏是叫wumpus,运行时加上参数-s <NUM>可以以我们提供的数做seed生成随机数,这样就保证每次都是一样的。取seed为100,输入SHOOT,1,2即可获胜。 问题还是出在sprintf,可以修改返回地址。关键是如何使字符串足够长。我曾经考虑过ctime的问题,因为其返回值是静态分配的一段空间,可能可以修改,但最...

manpage3

还是那个道理,打开的file descriptor会经过exec保存下来。我最开始的想法是,打开很多文件,然后执行manpage3,那么读密码那里就读空,因为密码文件打不开了 #include <unistd.h>#include <stdlib.h>#include <sys/types.h>#include <sys/stat.h>#in...

manpage2

问题出在,密码文件打开之后没有关闭,而fd是可以从exec继承的。于是我们先写一个读文件内容的程序 #include <unistd.h>int main () { char buf[64]; lseek(3, 0, SEEK_SET); ssize_t num; while((num=read(3,buf,sizeof buf)) > 0) ...

manpage1

exec的manual里是这么说的 Except for SIGCHLD, signals set to be ignored (SIG_IGN) by the calling process image shall be set to be ignored by the new process image. 于是我们先把SIGTERM设为忽略,再调用manpage1 #inc...

manpage0

有2点: execve,如果ST_NOSUID没有设的话,新执行的程序的rid不变,eid会变如果suid设了,saved suid也会被保存为eid,这样我们就可以在之后用setuid来恢复 setuid如果权限够了(root?),就把2个id都设了;否则只设eid,rid和saved suid不变 于是还是溢出,不过shellcode中要先恢复权限 BITS 32;se...