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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

南京邮电大学CTF题目writeup (二) 含题目地址

發布時間:2024/3/24 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 南京邮电大学CTF题目writeup (二) 含题目地址 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Pass-01

題目地址:http://nctf.nuptzj.cn/web15/

看題目就是一個登錄失敗的提示"Invalid password!"

通過查看源代碼 可見如下圖:

#GOAL: login as admin,then get the flag; error_reporting(0); require 'db.inc.php';function clean($str){if(get_magic_quotes_gpc()){$str=stripslashes($str);}return htmlentities($str, ENT_QUOTES); }$username = @clean((string)$_GET['username']); $password = @clean((string)$_GET['password']);$query='SELECT * FROM users WHERE name=\''.$username.'\' AND pass=\''.$password.'\';'; $result=mysql_query($query); if(!$result || mysql_num_rows($result) < 1){die('Invalid password!'); }echo $flag; -->

調用了魔術方法,當 magic_quotes_gpc 打開時,所有的 ‘ (單引號), ” (雙引號), (反斜線) and 空字符會自動轉為含有反斜線的溢出字符,所以通過直接在username后面做下端句執行繞過 會有難度。

SQL執行語句 :SELECT * FROM users WHERE name=\''.$username.'\' AND pass=\''.$password.'\';';

考慮能否讓 username輸入的內容 邊帶AND pass=后面的語句都在里面

$query='SELECT * FROM users WHERE name=\'\\' AND pass=\''$password'\';';

這里AND前面那個點將不在執行去匹配后面$password前面那個點實現斷句成功,如果填寫$password的內容為#的話可以看下如下效果

SELECT * FROM users WHERE name='\' AND pass='or 1=1#';

SQL執行

SELECT * FROM users WHERE name = ''' AND pass='OR 1 = 1

添加or 1=1 使整個語句有回顯顯示

那么正確的Payload:?username=\&password=or 1=1#

Pass-02

題目地址:http://nctf.nuptzj.cn/web17/index.php

代碼審計弱等于繞過

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值等于0e開頭的也可以,我這里的解題思路是用數組

?

Pass-03

題目地址:The Ducks

代碼審計

<?php if ($_SERVER["REQUEST_METHOD"] == "POST") { ?><?phpextract($_POST);if ($pass == $thepassword_123) { ?><div class="alert alert-success"><code><?php echo $theflag; ?></code></div><?php } ?><?php } ?>

extract($_POST); 這里傳送的值已經是數組 我用數組沒有繞過去。這里的辦法是變量覆蓋,因為這里沒有去做取值,你傳多少內容這里他就收多少內容然后到下面去匹配。因為是POST所以用的方法是抓包改包。

?

Pass-04

題目地址:http://nctf.nuptzj.cn/web23/

<!--$file = $_GET['file']; if(@file_get_contents($file) == "meizijiu"){echo $nctf; }-->

代碼很簡單 GET的方式來包含文件 但是這里檢測$file輸入的內容是 meizijiu的時候才會打印flag

所以這里用php://input的偽協議 來發送內容 meizijiu 達到繞過

?

Pass-05

題目地址:http://nctf.nuptzj.cn/web24/

<!--foreach($_GET as $key => $value){ $$key = $value; } if($name == "meizijiu233"){echo $flag; }-->

?可見使用的foreach函數 如論傳多少個內容他都會一個個取出跟剛剛那題類似,也可以用變量覆蓋來做

?

剩余題目沒找到 要不就是沒有任何提示 如果有題目可以一起留言探討。小伙伴們!

總結

以上是生活随笔為你收集整理的南京邮电大学CTF题目writeup (二) 含题目地址的全部內容,希望文章能夠幫你解決所遇到的問題。

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