Blinded by the light
http://www.wechall.net/challenge/blind_light/index.php这道题是盲注,32位的HEX,正好用了128次query下面是python代码#!/usr/bin/env python2importurllibimporturllib2defmakePayload(statement):return"' or substring(password, %d,...
View ArticleTracks
http://www.wechall.net/challenge/tracks/index.php这道题我稀里糊涂的做出来了,还是没搞明白是怎么回事儿……具体的,第二次投票会说已经投过。然后删除vote cookie,还是不行,再改了Etag就好了……貌似是和HTTP缓存有关?
View ArticleTropical Fruits
http://www.wechall.net/challenge/warchall/tropical/7/index.php这道题overflow很明显,关键是怎样绕过ASLR。到现在做了这些题目,总结下来要找漏洞的话,最好是能找到不自然的地方。这道题的不自然之处在具体溢出那里,用的是memcpy加strlen,而一般来说复制字符串直接strcpy就够了。所以这里是关键,两种方法相比,memcpy不...
View ArticleAre your blind
http://www.wechall.net/challenge/Mawekl/are_you_blind/index.php这道题还是盲注,32位的hash,128次跑完。这里我们用报错的方法来判断下面是python代码#!/usr/bin/env python2importurllibimporturllib2defmakePayload(statement):return"' or...
View ArticleLight in the Darkness
http://www.wechall.net/challenge/Mawekl/light_in_the_darkness/index.php这道题的错误会回显,而且限制要在2次query内得到答案,所以用error based: ' or (select count(*) from information_schema.tables group by...
View ArticleCan you read me
http://www.wechall.net/challenge/can_you_readme/index.php这道题试了下没发现什么漏洞,所以只好老老实实地去做识别了搜了下有tesseract这个软件可以做ocr,于是用下面的脚本:#!/bin/bash wget -O ocr.png --no-cookies --header...
View Articlehi
http://www.wechall.net/challenge/hi/index.php这道题就是等差数列求和……只不过数字大了点。我用wolfram alpha算的
View ArticleThe Last Hope
http://www.wechall.net/challenge/bsdhell/thelasthope/index.php这道题给了一个32位的ELF文件首先试着运行,发现停住了,从IDA反汇编得到的代码可以得知有反调试之类的措施,于是我们必须先去掉那些干扰参考这两篇文章:http://dbp-consulting.com/tutorials/debugging/linuxProgramStart...
View ArticleAUTH me
http://www.wechall.net/challenge/space/auth_me/index.php仔细看了conf文件,把每个参数的意思都查了,还是没有发现什么漏洞然后突然发现conf文件所在的路径,是在文件夹find_me下面。于是访问find_me,发现了需要用的客户端证书等文件于是将p12导入firefox:...
View ArticleTraining: GPG
http://www.wechall.net/challenge/training/crypto/gpg/index.php这道题要求用GPG。参考 http://dev.mutt.org/trac/wiki/MuttGuide/UseGPG另外,wechall发来的邮件mutt没有自动解密,我是把内容保存后另外用gpg
View Articlemysql字符串转为整数
http://www.freebuf.com/articles/web/6894.html这里的原理是:”-”是字符串减字符串,而字符串会被转为0,就变成了0-0=0。然后再比较name和0,字符串name被转为0,得到0=0,条件成立但这里条件是字符串name被转为0,如果name的第一个字符是数字而且不是0,那么就会被转成那个数字,此时条件不成立另外,除了”-”,还可以”-0, ”+0,...
View ArticleImpossible n’est pas français
http://www.wechall.net/challenge/impossible/index.php这道题要求在6秒内分解一个超级大的整数,所以标题的名字都是”impossible”这道题比较奇怪的一个地方是,如果你输入了错误的答案,他会把正确的答案告诉你,而这按理来说并不需要。于是从这里入手,发现即使答错,问题的整数还是没有变,这就给了我们再次尝试的机会。也就是说,先得到正确答案,然后在6秒...
View ArticleQuangcurrency
http://www.wechall.net/challenge/quangcurrency/index.php论坛里有提示,说是标题就是hint,从这个标题可以想到concurrency,虽然我是答完后看论坛才知道具体的,click会将金额加1,也就是new = old + 1, set value =...
View ArticleBandit
bandit0只需要ssh登陆即可,登陆后有文件readmebandit1用刚才得到的密码登陆,要读一个文件名为-的文件。搜了下,开始有的说用--,这表示选项的结束,但我试了cat -- -不行,因为cat把-当作是stdin了 后来搜,发现直接./-就可以 bandit2这次要读一个文件名包含空格的文件,直接用\ 就可以,实际上tab补全就这么做了……或者用引号把文件名括起来也可以...
View ArticleWarchall: Live RCE
http://www.wechall.net/challenge/warchall/live_rce/index.php这道题开始试了半天,发现没有注入什么的……然后在网上搜php rce,发现了有这个问题:CVE-2012-1823根据解释,如果query...
View ArticleBehemoth0
先用ida反编译,发现输入的密码要与一段字符串比较,而字符串是memfrob作用在几个数拼接起来的,即 0x475e4b4f,0x45425953,0x00595e58。先获取拼接得到的字符串:echo -e "475e4b4f\n45425953\n595e58" | tac | xxd -r -p | rev是OK^GSYBEX^Y于是可获取密码:print(''.join([chr(y)...
View ArticleBehemoth1
这道题我开始试了半天想要invoke一个shell,都没成功。最后用的shellcode是读直接文件首先,我们把shellcode存在环境变量里。通过输出ebp地址,我们知道了其在xor esp,...
View ArticleBehemoth2
这道题第一次做好像还用的是race condition,这次直接就是用PATH了。因为执行的命令都不是绝对路径,我们在当前文件夹下创建一个touch:#!/bin/sh cat /etc/behemoth_pass/behemoth3给他加上可执行权限,然后把当前路径(.)放在PATH的第一位。再执行behemoth2就会运行我们的touch
View ArticleBehemoth3
这道题是format string。步骤还是那样:输入一连串A,跟上一连串%x,由41的位置发现输入字符串是从第6个参数开始把shellcode导入环境变量,打印EBP地址进而得到返回地址将返回地址byte by...
View ArticleBehemoth4
这道题的程序执行后,会几乎立刻(1秒)去读一个文件,文件名和程序的pid有关。当然可以创建一大堆链接,都指向密码文件,链接名是所有可能的pid,但这样太费事儿我们用fork,父进程可以得到子进程的pid,由此创建链接文件;子进程先sleep一段时间,以确保父进程先创建链接,然后子进程exec目标程序即可。因为pid不会随exec变,所以这也就是目标程序的pidc代码如下#include<std...
View Article