BUUCFT 题解
文章目录
娱乐性质,玩一玩。
Linux Lab
使用 ssh 连接到靶机即可。
|
|
flag.txt 就放在根目录下面。
BUUCFT
打开页面,首先给了一段代码。
|
|
这里的意思是,高亮当前文件,判断是否存在为 file 的 query 参数,如果存在,就加载它。
尝试一下 ?file=flag.txt
,文件不存在;尝试
?file=flag
,页面中显示了 flag 。
暴力破解 1
首先是一个登录页面,查看了一下 HTML 代码,很干净,没有任何其他的东西。尝试写了句 SQL 注入,不行,所以没有注入的口子。
尝试用户名,是 admin 。尝试密码 1234 ,结果报密码错误,密码为四位数字。这里就只能写代码遍历所有四位整数了。因为频繁请求会被 429 ,但慢慢请求又太慢,所以只能遇到一个 429 就等待一下。
|
|
跑完后,结果是 6490 。
BUU SQL COURSE 1
看题目是 SQL 注入。
登录没有注入,是个幌子。注入点在获取新闻详情里。
使用 id=1 and 1=1
,无报错,正常回显,存在注入。
这里使用手动注入,首先要确定 SQL 返回结果的列数,使用
id=1 order by 1
来一个个往后推,到
id=1 order by 3
时结果有错,因此,结果字段是两列。
接下来确定数据库,id=1 union select 1, database()
。
然后确定数据库内有哪些表,id=1 union select 1, group_concat(table_name) from information.tables where table_schema='news'
。
确定有哪些列,id=1 union select 1, group(column_name) from information.columns where table_name='admin'
。
最后拿到 admin
的密码,id=1 union select username,password from admin
登录就可以拿到 flag 了。
关于 information_schema
:
- 猜库:select schema_name from information_schema.schema
- 猜库中的表:select table_name from information_schema.tables where table_shcema=“xxx”
- 猜表中列:select column_name from information_schema.columns where table_name=“xxx”
Upload-Labs-Linux 1
Pass 1
提示说用了前端 JS 检查。因为本身 form 就可以上传文件,而 JS 在这里只是起到了检查的作用,我们直接禁用 JS 即可。当然,我们也可以通过接口请求来绕过,只要不走这个 JS 就行。
我们需要上传一个 webshell ,因为我用的需要上传两个文件,所以就上传了两遍。完成后查看回显地址,找到我们的 webshell 链接。一旦打开,我们就成功骇入了。
执行 cat /flag
即可获得 flag 。
BUU CODE REVIEW 1
启动靶机,打开网页看到代码。
|
|
pleaseget
和 pleasepost
没有难度。MD5
值相当但值不相等利用的是 php ==
的漏洞,如果两个字符串经过哈希后都以 0E
开头,PHP
会把它们解释为 0
。比如,QNKCDZO
和
240610708
。
剩下的序列化是,由于 uniqid()
得出的值以微秒计,所以不能用值生成来做。这里比较巧妙的采用了引用。
|
|
结果是:
|
|
然后把这些值往 postman 里填就行,记得是 POST 。
文章作者 bigshans
上次更新 2023-07-23