靶机地址:172.16.1.195

Kali地址:172.16.1.107

1、信息收集

端口扫描:

目录扫描:

发现robots.txt敏感文件,查看

存在/m3diNf0/,/se3reTdir777/uploads/。

尝试访问/m3diNf0/,没有权限。扫描/m3diNf0/目录

存在info.php文件,查看

先记下相关信息,继续查看第一次扫描出来的目录。

查看/se3reTdir777/uploads/,没有权限访问。在继续扫描目录后发现,仅有/se3reTdir777/有权限访问

输入1显示

2、漏洞发现与利用

相关敏感信息:

  http://172.16.1.195/se3reTdir777//m3diNf0/info.php

注入点:

  http://172.16.1.195/se3reTdir777

尝试用SQLmap跑一下注入点

sqlmap -u "http://172.16.1.195/se3reTdir777/" --data "uid=1&Operation=Submit" --level=3 --dbs

  注入点:uid

  数据库类型:MySQL 5.0.12

  注入类型:时间盲注

  存在的数据库:[*] aiweb1(当前)  [*] information_schema

  aiweb1库中的表:user ,systemUser

依次向下:

  爆user表中的字段发现firstName、Id、lastName,没有必要继续了

  爆systemUser表的字段,没有出来结果

此时,尝试使用SQLmap的--os-shell命令

  os-shell执行条件有三个:

    网站必须是root权限

    网站的绝对路径已知

    GPC为off。php主动转义的功能关闭

执行命令:

sqlmap -u "http://172.16.1.195/se3reTdir777/" --data "uid=1&Operation=Submit" --level=3 --os-shell

依次选择PHP、custom location(s)

根据info.php文件暴露的信息,绝对路径选择:

/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/

查看文件权限

反弹shell

另开启一个终端,准备php文件,写入一下内容

Kali开启http.server后,os-shell终端下载到靶机

另一个终端监听端口:nc -lnvp 4444

在os-shell终端上,php执行上传的php文件

获取到反弹的shell

升级为交互式shell:python -c 'import pty;pty.spawn("/bin/bash")'

3、权限提升

网站用户权限,发现可以读取passwd

尝试增加用户,写入passwd

先对密码进行加密

$1$xp$4UEKxIegpvBEuB59Y0qFZ0

写入账号密码:echo 'xp:$1$xp$4UEKxIegpvBEuB59Y0qFZ0/:0:0::/root:/bin/bash'>>/etc/passwd  

  passwd文件规则:

     第一列:账户名称

    第二列:密码占位符(x表示该用户需密码登录,为空表示账户无需密码登录)

    第三列:用户UID

    第四列:GID

     第五列:账户附加基本信息(一般存储账户全名称、联系方式等)

     第六列:账户家目录位置

    第七列:账户登录shell(/bin/bash可登录,/sbin/nologin表示账户无法登录系统)

切换用户

提权成功,拿到用户权限

AI-web-1靶机过关记录的更多相关文章

  1. Goldeneye 靶机过关记录

    注:因记录时间不同,记录中1.111和1.105均为靶机地址. 1信息收集 1.1得到目标,相关界面如下: 1.2简单信息收集 wappalyzer插件显示: web服务器:Apache 2.4.7 ...

  2. Os-hackNos-1靶机过关记录

    靶机地址:172.16.1.198(或112)  kali地址:172.16.1.108 1 信息收集 靶机界面如下 简单查看 OS:Ubuntu Web:Apache2.4.18 尝试端口扫描 开放 ...

  3. Vulnhub-dpwwn-01靶机过关记录

    靶机地址:172.16.1.192 Kali 目录扫描 查看info.php 端口扫描 开放3306,尝试弱密码或爆破mysql. 账户为root,密码为空,成功登陆. 查看数据库:再查看ssh表 查 ...

  4. AI:WEB:1 Walkthrough

    AI: Web: 1 Vulnhub Walkthrough靶机下载:https://www.vulnhub.com/entry/ai-web-1,353/测试方法:    Nmap网络扫描    浏 ...

  5. 一次优化web项目的经历记录(三)

    一次优化web项目的经历记录 这段时间以来的总结与反思 前言:最近很长一段时间没有更新博客了,忙于一堆子项目的开发,严重拖慢了学习与思考的进程. 开水倒满了需要提早放下杯子,晚了就会烫手,这段时间以来 ...

  6. 一次优化web项目的经历记录(二)

    一次优化web项目的经历记录 这段时间以来的总结与反思 前言:最近很长一段时间没有更新博客了,忙于一堆子项目的开发,严重拖慢了学习与思考的进程. 开水倒满了需要提早放下杯子,晚了就会烫手,这段时间以来 ...

  7. 一次优化web项目的经历记录(一)

    一次优化web项目的经历记录 这段时间以来的总结与反思 前言:最近很长一段时间没有更新博客了,忙于一堆子项目的开发,严重拖慢了学习与思考的进程.开水倒满了需要提早放下杯子,晚了就会烫手,这段时间以来, ...

  8. Dynamics CRM2016 Web API之创建记录

    前篇介绍了通过primary key来查询记录,那query的知识点里面还有很多需要学习的,这个有待后面挖掘,本篇来简单介绍下用web api的创建记录. 直接上代码,这里的entity的属性我列了几 ...

  9. Web前端理论知识记录

      Web前端理论知识记录 Elena· 5 个月前 cookies,sessionStorage和localStorage的区别? sessionStorage用于本地存储一个会话(session) ...

随机推荐

  1. Python第五章-内置数据结构02-列表

    Python 内置的数据结构 二.列表(list) 想一想: 前面学习的字符串可以用来存储一串信息,那么想一想,怎样存储咱们班所有同学的名字呢? 定义100个变量,每个变量存放一个学生的姓名可行吗?有 ...

  2. python win32com

    要使用Python控制MS Word,您需要先安裝win32com套件,這個套件可以到 http://sourceforge.net/projects/pywin32/ 找到.本文假設您已經正確安裝w ...

  3. python之线程和进程

    进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握.最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂. 1:计算机的核心是CPU,它承担 ...

  4. coding++:java-全局异常处理

    本次使用工具:SpringBoot   <version>1.5.19.RELEASE</version> Code: AbstractException: package m ...

  5. VMware pro 15.5安装教程

    一,安装 1.VMware pro 15.5 下载地址:https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evalu ...

  6. python常用模块 以及第三方导入

    python常用模块 1模块的分类 标准模块(内置模块)( 标准库 )300 第三方模块 18万 pip install 直接通过pip安装 软件一般会被自动安装你python安装目录的这个子目录里 ...

  7. Java并发基础03. 传统线程互斥技术—synchronized

    在多个线程同时操作相同资源的时候,就会遇到并发的问题,如银行转账啊.售票系统啊等.为了避免这些问题的出现,我们可以使用synchronized关键字来解决,下面针对synchronized常见的用法做 ...

  8. Appium自动化 - 设置unicodeKeyboard: True运行脚本后,手机输入时无法调出软键盘

    问题背景 做appium自动化的时候,使用了UiAutomator1驱动,然后设置了UnicodeKeyboard 执行自动化脚本之后,玩手机的时候发现平时用的输入法键盘没法调出来了 'automat ...

  9. STM32F103C8T6最小系统开发板原理图

    1.

  10. java对象转为json字符串

    1.使用fastjson开源json工具类库 2.java类未添加get()和set()方法,java对象初始化时,使用fastjson解析,得到的json字符串有时为空{} 3.Java对象转为js ...