| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> dc-9 靶机渗透学习 -> 正文阅读 |
|
[网络协议]dc-9 靶机渗透学习 |
信息收集用nmap扫描当前网段
对靶机进行端口扫描
访问靶机的80端口,进行框架识别 无框架的页面,尝试web服务漏洞,用dirsearch进行扫描,没有发现可利用的文件。 漏洞利用?尝试从页面模块处寻找漏洞,发现在search的地方存在SQL注入漏洞。 测试过程通常我们测试SQL注入漏洞都是输入一个单引号或者双引号,根据返回的报错信息判断是否存在SQL注入。但在这里就行不通了,web服务器屏蔽了报错信息。 ? 这个时候闭合形式没法判断,那么只能盲测一波。同时因为报错信息被屏蔽了,order by也使用不了。只能用union select来判断,首先盲猜为单引号闭合。
因为union要求前后必须列数相同,无法通过order by来判断web服务器查询结果的列数,只能用union select进行盲测。如果出现了数据,就可判断存在SQL注入漏洞。 其实还有一种方法可以验证存在SQL注入漏洞,就是直接输入1' or 1=1#来爆出数据库的所有字段 web服务器构造向mysql数据库查询语句可能是
?那么代入我们的1' or 1=1#就变成了下面的形式
根据mysql的语法,由于#是注释符,后面的'会被注释掉,所以上面的语句就相当于
我们都知道where在mysql中相当于判断语句,判断'1' or 1=1是否为真。因为是由or连接,所以'1'和1=1中有一个真则为真。1=1肯定是真的,所以上面的语句又等价于
?所以这个1' or 1=1#可以爆出数据库的所有字段 ? ? sqlmap爆数据库后面的就交给sqlmap来进行了,因为是POST发送数据,所以有两种方法实现POST注入。 第一种使用sqlmap的--data指定参数为search
?接着就是爆库、爆表、爆字段........
可以看到当前数据库中有个admin ?拿去MD5解密得到密码 ?得到
还有一个users数据库里面也存在账号密码,暂时还没用到
第二种使用bp联合sqlmap实现注入,将bp中请求数据包放入1.txt里面 ?然后使用sqlmap的-r参数调用该文本
?大致步骤也和上面的一样。 登录账号在Manage部分用账号密码登录,发现下面黑色部分有File does not exist,猜测可能存在文件包含 ? 测试一波发现确实存在文件包含漏洞,../是返回上一级目录。 为什么dc-5直接包含/etc/passwd就成功了呢?我认为是dc-9对文件包含的范围做了限制,只允许包含当前目录。所以需要../来返回到根目录下,再包含/etc/passwd。 ?结合刚刚数据库读到的一些用户信息,接下来使用hydra来ssh爆破,说一下如何快速将sqlmap爆出的用户和密码导入文件中。 将白色部分进行复制,粘贴进2.txt里面 ?使用awk命令将用户名导入admin.txt里面? Linux awk 命令 | 菜鸟教程 (runoob.com)
?将用户名放入admin.txt后,会发现用户名前面有个空格,需要去掉。
导入密码也是和上面的一样,完成之后就可以进行hydra爆破,但是你会发现ssh拒绝连接。 具体原因是靶机使用了knockd进行防护
简单来说就是用来隐藏ssh登陆端口。(也就是我们之前扫描端口时发现22端口阻塞)只有我们按照设定的顺序敲击端口,防火墙才会打开登陆端口。再按照同样的方式可以使防火墙关闭ssh登陆端口,如果别人不知道我们设定的端口敲击顺序,是无法登陆ssh的,我们可以下载knock来开启远程端口。 通过刚刚的文件包含读取/etc/knockd.conf 按照要求的顺序敲击端口
?再进行ssh爆破
?得到三个账号密码
? 提权登录ssh
进入chandlerb和joeyt用户查看了一下隐藏文件,没有发现什么有用的东西,各种提权也试了一下,结果不行。 ls命令 – 显示指定工作目录下的内容及属性信息 – Linux命令大全(手册) (linuxcool.com) 在janitor用户中发现了.secrets-for-putin有个passwords文件,里面含有密码
?放到pass.txt里面继续爆破,发现多了一个用户
登录fredf后,继续进行提权。尝试SUID提权,没发现可以用于提权的命令
查看免密可用的root级别命令,发现有个/opt/devstuff/dist/test/test可用使用?
进入test所在目录下使用
?提示我们要使用test.py,那么寻找一下test.py?
查看test.py
?对代码审计一下
passwd文件每一行的格式如下:
?我们造一个符合该格式的用户,一般/tmp目录可写,写到/tmp目录下
这里有个注意的地方,写入的时候必须是单引号,也就是echo '......',不能是echo ".....",双引号会导致最后失败。
最后运行脚本,切换用户得到root权限。?
?
后面补充点自己看的知识 shadow文件
参考文章?Sqlmap全参数详解_breezeO_o的博客-CSDN博客_ospf协议配置 ls命令 – 显示指定工作目录下的内容及属性信息 – Linux命令大全(手册) (linuxcool.com) |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 5:27:16- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |