buuctf刷題之旅 web EasySQL

2022-07-30 13:27:08 字數 1746 閱讀 4522

開啟環境,發現依舊是sql注入

github上有原始碼(

index.php原始碼

<?php 

session_start

();

include_once "config.php";

$post = array

();

$get = array

();

global

$mysqllink

;

//getpara();

$mysqllink = mysqli_connect("localhost",$datauser,$datapass

);

if(!$mysqllink

)

$selectdb = mysqli_select_db($mysqllink,$dataname

);

if(!$selectdb

)

foreach ($_post

as$k=>$v

) }

foreach ($_get

as$k=>$v

) }

//die();

?>

give me your flag, i will tell you if the flag is right.

<?php

if(isset($post['query']))/is",$post['query']));

if(preg_match("//is",$post['query']))

if(strlen($post['query'])>40)

$sql = "select ".$post['query']."||flag from flag";

//sql執行語句

mysqli_multi_query($mysqllink,$sql

);

do }

}while(@mysqli_next_result($mysqllink

));

}?>

sql執行的語句:$sql="select ".$post['query']."||flag from flag";

第一種:堆疊注入,使得sql_mode的值為pipes_as_concat。

payload:setsql_mode=pipes_as_concat;

所以整個語句為:1;set sql_mode=pipes_as_concat;select 1

第二種:

根據sql執行語句:$sql="select ".$post['query']."||flag from flag";

構造出:$sql="select *,1 ||flag from flag";

所以直接輸入「*,1」就可直接出flag

Web刷題之旅(二) BUUCTF 站

網頁讓我們 try to find out source file 御劍和uniscan掃不出後台目錄,無奈只好拿出掃到讓運營兩行淚的dirsearch 原來是php弱型別轉換,就是說int型別傳入1a,遇到字元就會停止讀取,相當於傳入的是1key和str比較,str必然是要型別轉換成int,只取1...

pat刷題之旅1002

一開始那道題,我的思路就是用乙個變數n來儲存所輸入的數,之後通過模10,除10運算來求得每一位上的數之和,最後將所求得的和進行模10,除10將每一位上的數放到陣列arr中,通過switch case語句對應到相應的漢字表示中。如下。include includeint main int s 0,i ...

hdoj刷題之旅 2003

輸入乙個百分制的成績t,將其轉換成對應的等級,具體轉換規則如下 90 100為a 80 89為b 70 79為c 60 69為d 0 59為e 輸入資料有多組,每組佔一行,由乙個整數組成。對於每組輸入資料,輸出一行。如果輸入資料不在0 100範圍內,請輸出一行 score is error edas...