HOST me
http://www.wechall.net/challenge/space/host_me/index.php$_SERVER['HTTP_HOST']是从http头的Host读的,所以我们需要把Host设成localhost另一方面,我们需要正常访问网址,所以要用absoluteURI GET...
View Articlehtmlspecialchars
http://www.wechall.net/challenge/htmlspecialchars/index.php单引号也需要encode,否则可以添加事件如 onclick=alert(1)所以需要给 htmlspecialchars加上 ENT_QUOTES
View ArticlePHP 0815
http://www.wechall.net/challenge/php0815/index.php这道题要求将传入的参数转为整数。官方的做法是(int)或 intval(),但这里要求最简单的fix。用-0就可以保持整数的值不变,同时类型自动转为整数
View ArticlePHP 0816
http://www.wechall.net/challenge/php0816/index.php这道题有提示说是逻辑错误。仔细阅读后,发现可以在检查$_GET['src']之前就输出文件内容,也就是说,将mode=hl放在src=solution.php之前
View ArticlePHP 0818
http://www.wechall.net/challenge/noother/php0818/index.php这道题要求提供一个和3735929054相等的数,但不能包含1-9。因为正好0是可以的,所以可以用hex,PHP会自作聪明地转化好。原来那个数等于0xdeadc0de,不包含1-9
View ArticlePHP 0819
http://www.wechall.net/challenge/space/php0819/index.php这道题要求构造字符串,不能使用引号和其他一些符号php里可以用heredoc构造字符串,不需要引号。注意结束delimiter后面需要newline,所以eval=%3c%3c%3cA%0a1337%0aA%3b%0a
View ArticlePy-Tong
http://www.wechall.net/challenge/space/pytong/index.php也就是要求两次读的文件内容不同,提示也说了可以用race condition,但不必要这里我们用named pipe(FIFO),可以通过mkfifo p来创建之后我们之需要让pytong读这个fifo就可以了,先后通过echo "123"> pecho "12345">...
View ArticleBrainfucked
https://www.wechall.net/challenge/brainfucked/index.php这道题是jother混淆的javascript。用jother可以编码成字符串或者是函数,如果是字符串那么直接在浏览器里运就可以。这里是函数,实际上是f(something)()的形式,那么只要把something运行就可以或者将其保存下来,直接用node运,因为没有document等元素,...
View ArticleOrder By Query
http://www.wechall.net/challenge/order_by_query/index.php用户输入在order by后面出现,只能用盲注另外由于会检查参数by是否在白名单里,但用的是==,所以只要第一个字符是有效的数字即可用二分法读内容 by=1,(case when (ascii(substring((select password from users where...
View ArticleStop us
http://www.wechall.net/challenge/noother/stop_us/index.php在购买过程中,首先domain数加1,然后再扣钱。如果运行到加完domain扣钱之前,那么就可以不花钱了在文件开始处我们看到配置ignore_user_abort是false,所以我们就利用这点在网上查了下其实connection abort还是比较复杂的,php cannot...
View ArticleTable Names
http://www.wechall.net/challenge/table_names/index.php很基本的注入,没有任何检查,3列,用limit 1,1读其他行的信息
View ArticleYourself PHP
http://www.wechall.net/challenge/yourself_php/index.php/asdf因为username被转义了,不能在这注入但是_$SERVER['PHP_SELF']被直接输出,而且这道题的标题就暗示了要从这里入手...
View ArticleAddslashes
http://www.wechall.net/challenge/addslashes/index.php SQL宽字符注入,username=a%bf'%20union%20select%200x41646d696e--%20
View ArticleCrappyshare
http://www.wechall.net/challenge/crappyshare/index.php检查代码,发现如果是通过url,会将文件内容也输出来。为了读取本地文件,我们用file://协议file://solution.php
View ArticleMD5.SALT
http://www.wechall.net/challenge/MD5.SALT/index.php首先注册了一个密码为空的用户。尝试发现似乎是执行两次SQL query,首先是取用户名,再对得到的行检查密码。因为用了salt,我们先取出。因为注册的密码是空,所以计算得到的hash就是md5(salt):username=' union select password,password from...
View ArticleScrewed Signup
http://www.wechall.net/challenge/screwed_signup/index.php这道题比较有意思经过一番尝试,发现了代码中不一致的地方:SQL...
View ArticleTable Names II
http://www.wechall.net/challenge/nurfed/more_table_names/index.php这道题里有黑名单过滤,在网上搜到了解答……information_schema.processlist里有db,还有info是当前的query
View ArticleLive LFI&RFI
http://www.wechall.net/challenge/warchall/live_rfi/index.phphttp://www.wechall.net/challenge/warchall/live_lfi/index.php这两题类似,都是文件包含,参数lang可以传文件名LFI那里,直接访问solution.php,有两行:teh falg si naer, the flag is...
View ArticleTime to Reset
http://www.wechall.net/challenge/time_to_reset/index.php最初的想法还是和注入有关,试了几次发现邮件地址不能包含特殊字符……再从头开始看代码,发现了不自然的地方:提交email的表格里有CSRF的token,感觉似乎在见过的题目里并不常见;其实这也还说得过去,但是token的生成方式太可疑了,用的是和reset...
View ArticleTryouts
http://www.wechall.net/challenge/warchall/tryouts/index.php用IDA反汇编,基本上了解了题意。最初的想法比较直接:从随机数下手。但根据后来在网上搜到的情况,/dev/urandom虽然不是那么随机,但熵基本上还是足够的仔细阅读反汇编得到的C代码,发现了以下不自然的地方:snprintf((char*)&v16,0x200u,"cat...
View Article