信息系统安全实验——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

我们尝试直接运行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
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的主要内容,如果未能解决你的问题,请参考以下文章

20175221 《信息安全系统设计基础》第5周学习总结

科软-信息安全实验01-ICMP重定向

20155301信息安全系统设计基础第三次实验

20155229 《信息安全系统设计基础》 week10 课上测试ch06

2017-2018-1 20155215 《信息安全系系统设计基础》实验三

《信息安全系统设计基础》第7周学习总结