本文介绍: 该题考察curl及Django模块相关知识,读者可躬身实践。我是秋说,我们下次见。

题目描述:抓住那只猫

在这里插入图片描述

姿势

ping127.0.0.1

ping通:

在这里插入图片描述
ping127.0.0.1 | ls命令执行失败

在这里插入图片描述
结合下图,猜测环境字符进行过滤

在这里插入图片描述

字典

抓包加入字典判断猜测:


具体方法参考
[网络安全]BurpSuite爆破实战解题详析之BUUCTF Brute 1

[网络安全]DVWA之Brute Force攻击姿势及解题详析合集

常用字典如下

length 
+
handler
like
select 
sleep
database
delete
having
or
as
-~
BENCHMARK
limit
left
select
insert
sys.schema_auto_increment_columns
join
right
#
&
&&

handler
-- -
--
--+
INFORMATION
--
;
!
%
+
xor
<>
(
>
<
)
.
^
=
AND
BY
CAST
COLUMN
COUNT
CREATE
END
case
'1'='1
when
admin'
"
length 
+
length
REVERSE

ascii
select 
database
left
right
'
union
||
oorr
/
//
//*
*/*
/**/
anandd
GROUP
HAVING
IF
INTO
JOIN
LEAVE
LEFT
LEVEL
sleep
LIKE
NAMES
NEXT
NULL
OF
ON
|
infromation_schema
user
OR
ORDER
ORD
SCHEMA
SELECT
SET
TABLE
THEN
UPDATE
USER
USING
VALUE
VALUES
WHEN
WHERE
ADD
AND
prepare
set
update
delete
drop
inset
CAST
COLUMN
CONCAT
GROUP_CONCAT
group_concat
CREATE
DATABASE
DATABASES
alter
DELETE
DROP
floor
rand()
information_schema.tables
TABLE_SCHEMA
%df
concat_ws()
concat
LIMIT
ORD
ON
extractvalue
order 
CAST()
by
ORDER
OUTFILE
RENAME
REPLACE
SCHEMA
SELECT
SET
updatexml
SHOW
SQL
TABLE
THEN
TRUE
instr
benchmark
format
bin
substring
ord

UPDATE
VALUES
VARCHAR
VERSION
WHEN
WHERE
/*
`
  
,
users
%0a
%0b
mid
for
BEFORE
REGEXP
RLIKE
in
sys schemma
SEPARATOR
XOR
CURSOR
FLOOR
sys.schema_table_statistics_with_buffer
INFILE
count
%0c
from
%0d
%a0
=
@
else

结果如下

在这里插入图片描述
复制网址打开

在这里插入图片描述
页面底部显示如下

在这里插入图片描述
这是python的Django模块,其数据库database文件存在opt/api下的setting.py文件

查找settings文件

Payload/opt/api/settings.py

回显。又由下图可知,环境并未对@进行过滤

在这里插入图片描述

curl参数上传

在PHP中使用CURL进行文件上传时,@符号加上文件路径表示读取该文件内容并将其作为请求参数上传

使用文件路径作为参数时,若文件路径指定有误或不存在,则无法正确读取文件内容
使用@+文件路径时,CURL将自动读取该文件内容并将其作为请求参数。即使输入的文件路径有错或不存在,CURL仍然可以正常上传
Payload@/opt/api/settings.py
回显,可能是因为/opt/api/是整个API项目根目录,而/opt/api/api/是API应用程序的特定子目录用于存放与API功能相关的文件。

Payload@/opt/api/api/settings.py,同时查找database

在这里插入图片描述
路径opt/api/database.sqlite3

如若没成功发现setting.py绝对路径,可直接在%20页面查找api/databse

在这里插入图片描述

读取database文件

构造Payload@/opt/api/database.sqlite3

在这里插入图片描述
搜索关键词

在这里插入图片描述
也可使用浏览器自带查找功能

在这里插入图片描述flag为:WHCTF{yoooo_Such_A_G00D_@}

总结

该题考察curlDjango模块相关知识,读者可躬身实践。
我是秋说我们下次见。

原文地址:https://blog.csdn.net/2301_77485708/article/details/130947251

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_24664.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注