南邮 ctf
1.
這題有些懵所以就參考了大佬們寫的wp.233333小白上路,還很艱險。
可直接訪問源代碼,關于@ereg()函數,int ereg(string pattern, string originalstring, [array regs]);,ereg()函數用指定的模式搜索一個字符串中指定的字符串,如果匹配成功返回true,否則,則返回false。搜索字母的字符是大小寫敏感的。所以,本題中@ereg ("^[1-9]+$", $_GET['nctf'])即要求nctf變量必須是數字,google發現ereg函數存在%00截斷漏洞,當遇到%00(NULL)時,函數就截止了。strpos(string,find,start),strpos()函數查找字符串在另一字符串中第一次出現的位置(區分大小寫)。即strpos ($_GET['nctf'], '#biubiubiu')函數要求nctf變量中需要包含'#biubiubiu'字符串,才能返回flag。
參考文章:http://wiki.jikexueyuan.com/project/php/regular-expression/ereg.html
看文文章幾乎就可一做出來了2333.
Flag: flag:nctf{use_00_to_jieduan}2.
if (isset($_GET['a']) and isset($_GET['b'])) { if ($_GET['a'] != $_GET['b']) if (md5($_GET['a']) == md5($_GET['b'])) die('Flag: '.$flag); else print 'Wrong.'; }看完代碼就發現代碼的意思是讓兩個不一樣的數使他們的md5相等,md5()函數要求接收一個字符串,若傳遞進去一個數組,則會返回null(加了‘ ’就相當于字符串的代表了)因此向$_GET數組傳入兩個名為a、b的不相等的數組,從而導致md5()均返回空,于是得到flag,如訪問 http://chinalover.sinaapp.com/web17/index.php?a[]=&b[]=1
Flag: nctf{php_is_so_cool}?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
總結
- 上一篇: Android Switch开关按钮使用
- 下一篇: Live800:在线客服系统哪家强?