ctfshow-SQL注入篇[Web201-Web213 sqlmap使用]
发布网友
发布时间:2022-09-12 05:59
我来回答
共1个回答
热心网友
时间:2024-05-11 06:42
参考: https://www.wlhhlc.top/posts/14827
开始sqlmap的使用,提示使用 --refer 绕过refer检查:
注意,最后一句不加 --mp 会直接把数据写入文件中,不显示在终端上。
提示如下:
提示如下:
提示需要api鉴权:
可以看到,每次请求之前会进行如下url的调用:
最终的命令如下:
提示我们需要闭合:
查询语句中也的确是这样的:
不过sqlmap会帮我们处理这个,所以不需要在意,命令和上一题一样:
对传入的参数开始过滤了,使用tamper应对。
这一题过滤了空格,可以使用注释进行绕过,使用sqlmap自带的space2comment.py进行绕过:
space2comment.py如下:
当然也可以使用 %09 之类的来进行绕过。
对小写的 select 和空格进行了绕过,不过sqlmap中的select都是大写的,所以和上一题一样即可:
过滤了空格,*号和等号,使用 %09 绕过空格,使用 like 绕过等号,基于此改一下tamper即可:
命令如下:
base64和反转字符串连着来,按着逻辑写脚本即可:
命令如下:
多加了一个空格过滤,用注释绕过:
命令如下:
除了base64和反转字符串,还过滤了空格和*号,那么使用 %09 绕过空格:
命令如下:
提示了使用 --os-shell :
–os-shell 其本质是写入两个shell文件,其中一个可以命令执行,另一个则是可以让我们上传文件;
不过也是有*的,上传文件我们需要受到两个条件的*,一个是网站的绝对路径,另一个则是导入导出的权限
在mysql中,由 secure_file_priv 参数来控制导入导出权限,该参数后面为null时,则表示不允许导入导出;如果是一个文件夹,则表示仅能在这个文件夹中导入导出;如果参数后面为空,也就是没有值时,则表示在任何文件夹都能导入导出
命令如下:
如图,获得了shell:
上图中出现了两个php文件,分别是tmpbvrci.php和tmpuuvbo.php,这就是前面所提到的sqlmap上传的两个shell文件。
tmpbvrci.php用于命令执行:
而tmpuuvbo.php用于文件上传:
获得flag: