日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

南邮tip sql.php_南京邮电大学 CTF Write Up

發布時間:2024/3/24 php 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 南邮tip sql.php_南京邮电大学 CTF Write Up 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這次來看看某著名大學——

(Ps:因本人較懶,所以做題時都是手工+度娘,幾乎沒有用到瀏覽器以外的工具,如有更好的辦法,歡迎留言告知~)

Web

簽到題

直接查看源代碼吧。。

key在哪里?

nctf{flag_admiaanaaaaaaaaaaa}

Flag:nctf{flag_admiaanaaaaaaaaaaa}

md5 collision

直接給了源碼,來看看

$md51 = md5('QNKCDZO');

$a = @$_GET['a'];

$md52 = @md5($a);

if(isset($a)){

if ($a != 'QNKCDZO' && $md51 == $md52) {

echo "nctf{*****************}";

} else {

echo "false!!!";

}}

else{echo "please input a";}

發現利用的是MD51=MD52來跳出flag,而且還給了個參數a,那么只需要讓參數a的值經過MD5加密后與字符串QNKCDZO經過加密后的MD5值相等就好了。加密后發現是0E開頭的密文,即PHP解析0E開頭的md5漏洞。詳情參照:?a=s878926199a(自行百度,數不勝數),即

簽到題2

口令是11位數的zhimakaimen,輸入會發現這個輸入框限制輸入長度為10位數,本人Firefox瀏覽器直接按F12(或鼠標單擊右鍵審查元素)找到這一行:

style="background-image:url··· type="password">

maxlength="10"的10改成>=11,再輸入就可以提交口令了。

Flag:nctf{follow_me_to_exploit}

這題不是web

既然不是web,源碼和頭文件也沒有任何提示信息,就把這張圖下載下來,改為txt格式打開,Ctrl+F快速查找,發現flag在文末。。還真的不是WEB啊

Flag:nctf{photo_can_also_hid3_msg}

層層遞進

沒啥思路。。。就右鍵查看源代碼,跟隨底部鏈接,依次訪nctf{javascript_aaencode}

打開是亂碼,習慣性用轉碼工具(Alt->查看->文字編碼->Unicode)轉換一下發現是一對堆表情,明顯是JS加密,直接F12貼進控制臺跑一下,Flag就出來了~

Flag:nctf{javascript_aaencode}

單身二十年

查看源碼,點擊,Flag直接出來了。。

Flag:nctf{yougotit_script_now}

php decode

因為PHP環境沒有配置好還是什么原因,據說eval函數可以執行php代碼,但我將他寫好放進本地根目錄的時候打開會報錯,所以也就沒做留著以后填坑

文件包含

LFI漏洞,自行百度補充。

學到了一點猥瑣的知識,在服務器端的.php文件無法直接顯示,用base64加密(read=convert.base64-encode)后拿到密文再解密,就可以看到源碼了。

asdf

error_reporting(0);

if(!$_GET[file]){echo 'click me? no';}

$file=$_GET['file'];

if(strstr($file,"../")||stristr($file, "tp")||stristr($file,"input")||stristr($file,"data")){

echo "Oh no!";

exit();

}

include($file);

//flag:nctf{edulcni_elif_lacol_si_siht}

?>

Flag:nctf{edulcni_elif_lacol_si_siht}

單身一百年也沒用

和單身二十年一樣,看源碼,點擊 結果卻跳轉到了

/no_key_is_here_forever.php,猜想是用了重定向,F12查看網絡,就能發現index.php這個包,果然是302重定向,查看響應沒有東西,那么應該在頭文件了,果然,不出所料~

響應頭:

Server: sae

Date: Sat, 13 Jan 2018 08:17:43 GMT

Content-Type: text/html

Content-Length: 0

Connection: keep-alive

flag: nctf{this_is_302_redirect}

Location: http://chinalover.sinaapp.com/web8/no_key_is_here_forever.php

Via: 1566

Flag: nctf{this_is_302_redirect}

Download~!

不能做,留著以后填坑~

COOKIE

先弄明白COOKIE是個什么東西,驗證身份用的對吧?那么然后去看請求包,F12網絡,發現請求頭和響應頭之間的基情:

Host: chinalover.sinaapp.com

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2

Accept-Encoding: gzip, deflate

Cookie: Login=0

Connection: keep-alive

Upgrade-Insecure-Requests: 1

DNT: 1

Cache-Control: max-age=0

Server: sae

Date: Sat, 13 Jan 2018 08:27:49 GMT

Content-Type: text/html

Transfer-Encoding: chunked

Connection: keep-alive

Via: 15146

Set-Cookie: Login=0

Content-Encoding: gzip

cookie:Login=0,題目給的有Tips啊,0==not,按照程序員的思維(不要問為什么,嘿嘿嘿),那么1==yes,改之,出Flag.

Flag:nctf{cookie_is_different_from_session}

MYSQL

按照提示進去robots.txt后轉碼看到如下內容:

別太開心,flag不在這,這個文件的用途你看完了?

在CTF比賽中,這個文件往往存放著提示信息

TIP:sql.php

if($_GET[id]) {

mysql_connect(SAE_MYSQL_HOST_M . ':' . SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);

mysql_select_db(SAE_MYSQL_DB);

$id = intval($_GET[id]);

$query = @mysql_fetch_array(mysql_query("select content from ctf2 where id='$id'"));

if ($_GET[id]==1024) {

echo "

no! try again

";

}

else{

echo($query[content]);

}

}

?>

好了,TIP又出來了,進去sql.php看看,什么都沒有,回來看到這一行

if ($_GET[id]==1024) {

echo "

no! try again

";

}

/sql.php?id=1024后提示try again,換到/sql.php?id=1025后提示no more。。雖然不懂原理,但是猥瑣的試了一波/sql.php?id=1024.5,哈哈,成功拿到Flag~

后來才知道重點是這兒

if ($_GET[id]==1024) {

echo "

no! try again

";

}

else{

echo($query[content]);

}

要求提交的ID在值上==1024,但又不能是1024,否則就會try again。。任意的小數都可以~ ~ Wpsec的基友們記不記得某浪想要的998?同一個道理~

/x00

(膜拜大佬,不甘心這道題,看了Writeup惡補一番知識才弄明白,此題writeup直接拖)

view-source:

if (isset ($_GET['nctf'])) {

if (@ereg ("^[1-9]+$", $_GET['nctf']) === FALSE)

echo '必須輸入數字才行';

else if (strpos ($_GET['nctf'], '#biubiubiu') !== FALSE)

die('Flag: '.$flag);

else

echo '騷年,繼續努力吧啊~';

}

這里ereg有兩個漏洞

1.%00截斷及遇到%00則默認為字符串的結束

2.當ntf為數組時它的返回值不是FALSE

所以有兩個方法拿flag

1.令id=1%00%23biubiubiu

2.令nctf為數組,即nctf[]=1

Flag:nctf{use_00_to_jieduan}

偽裝者

改了X-Forwarded-For沒用,不用改Referer,應該是服務器出問題了,看了writeup后發現思路也沒錯。。自行補充XFF和Referer和UA在HTTP協議中的作用吧。。

Header

直接F12看頭文件,Flag就在里面。

Date: Sun, 14 Jan 2018 10:42:18 GMT

Server: Apache/2.2.15 (CentOS)

X-Powered-By: PHP/5.3.3

Flag: nctf{tips_often_hide_here}

Content-Length: 132

Connection: close

Content-Type: text/html; charset=UTF-8

Flag:nctf{tips_often_hide_here}

bypass again

打開見到

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.';

}

GET可以接受數組 但md5()不能加密數組內的數據,所以令a和b分別為數組,可以繞過,所以在url里加入index.php?a[]=1&b[]=2,即可看到Flag

Flag: nctf{php_is_so_cool}

綜合題

一大堆,是jother編碼,控制臺跑一下出來1bc29b36f623ba82aaf6724fd3b16718.php,貼入URL發現被耍了= =,TIP在頭里,查看頭文件發現

Server: sae

Date: Sat, 13 Jan 2018 08:47:08 GMT

Content-Type: text/html

Transfer-Encoding: chunked

Connection: keep-alive

tip: history of bash

Via: 1566

Content-Encoding: gzip

百度一波history of bash,發現某大佬文章.bash_history,貼入url發現

zip -r flagbak.zip ./*

再次下載,發現被損壞無法解壓。。常規思路,改為txt格式發現Flag~

Flag:nctf{bash_history_means_what}

Re

Hello,RE!

因為工具的不兼容。。RE的題就沒做。。

Pwn

When did you born?

提取碼錯誤。。

Stack Overflow

不會做,留著以后搞~

Crypto

easy!

丟Base64解密,秒出。。

Flag:nctf{this_is_base64_encode}

Keyboard

題目就是鍵盤,看提示也是鍵盤,那么就從鍵盤入手,會發現形狀是字母areuhack,

題目也說了加上nctf{}。。

Flag:nctf{areuhack}

異性相吸

提取碼錯誤,以后填坑吧

Misc

全部提取碼錯誤。。就先放著吧

總結

以上是生活随笔為你收集整理的南邮tip sql.php_南京邮电大学 CTF Write Up的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。