偶然的一次渗透测试
偶然的一次拿站
声明:在本次渗透测试中,没有动任何数据,也联系了管理员
前言
本来,我是在看一篇科普文章的,做着提到了safe3这个漏扫工具,我就向想试一下这个工具如何,利用google hacking找了一个php的站,扫描完提示有可能存在sql注入,那还等什么就直接开始操练了。
开始注入
输入一个单引号,报错了,更具报错信息可以判断数据库类型时mysql。然后就是常规操作,判断字段数为8,然后只有第四个字段才会显示在页面上,如下所示:
mark 继续查询了下数据库的版本,以及当前使用的数据库分别为: 数据库版本为5.1.48-log 数据库为qdm123287303_db 继续查询发现只有两个数据库,一个information_schema,一个上面提到的,管理员账户肯定是在上面那个数据库里,查询了一下:
mark
http://xxxxxx/index.php?c=default&a=guanyuhuicheng&id=0%20union%20select%201,2,3,group_concat(table_name),5,6,7,8%20from%20information_schema.tables%20where%20table_schema=database()--+
显示有一个hc_admin表,这肯定就是存储管理员账号密码的表了,查询出来账号密码:admin~bee333a826ece70757dbcba4b7930471(Passw0rdhc) 为了跑这个MD5值我还花了2块大洋。
mark 后台是我一开始就扫出来了(先看看是否能找到后台是个好习惯),直接输入admin就会跳转到后台。直接登录
mark
拿到shell
其实中间有个小插曲,我在扫目录以及sql注入的过程中,ip被临时屏蔽掉好几次,反正就是找各种免费代理继续整,要是有一个高质量的免费代理自动切换工具就太爽了(可能后面会考虑搞一个)。
老规矩,先找上传点,后台有一个产品图库这么个选项,其中就可以上传图片,先上传了几张正常图片上去看下路径,路径在前台对应有产品图库这么个选项,所以很好找,那就准备上传小马。
根据多次测试发现,后台应该是对上传的内容作了检验,那我就制造一个图片马上传呗:
copy shell.php/a+pig.jpg/b pig.jpg
cmd下执行上面的命令就会生成图片马,然后上传抓包,把文件名改回php,结果后台报错了,反正就是一大堆错误,还直接爆出了源代码,我以为没戏了就换了其他的后缀名试试,例如cer,也都不行
mark
有点心累,但还是要干,我回头来分析了一下上面爆的错误,看看有没有什么转机,结果还真被我找到了突破口,可以看到上面报的错误是imagecreatefromphp没有实现,我上传cer后缀的时候就是imagecreatefromcer没有实现,经过测试发现这个函数名就是
imagecreatefrom+后缀名
合法的函数应该是imagecreatefromjpg等等图片类型的,一开始的想法是能不能通过对文件名做手脚绕过这里,试了00截断等,无解。于是另谋出路,当我往下看报错信息的时候才发现,我的php文件应该是被传上去了,从上图我标记出来的地方可以看到。
后台应该接收了我的文件,只是想要通过我的文件创建图片失败了,因为相应的imagecreatefromphp没有实现,而且报错信息中甚至爆出了路径。于是乎菜刀连接之,结果直接链接被重置了!!!我的ip又被屏蔽掉了,看来服务器上还是有东西的。菜刀连接是不行的了,那我直接上传大马吧!
mark
提权
webshell已经拿到,接下来就是提权啦,用nmap探测了一下服务器的操作系统以及端口,不知是namp误报还是什么的,反正扫出来操作系统是索尼的一款电视的品牌。。。(什么TV),但是更具前面各种信息,例如网站根路径可以知道是linux系统。
linux系统提权以前从没接触过,但是既然遇到了就看看吧,nmap扫描端口:
mark 这些东西好像也没有什么可利用的,vsftpd也只有2.3.4可以直接提权,mysql数据库也不是root权限。
用nc反弹了一个shell,也执行不了命令….所以我就放弃了提权 在这个过程中也学到了一些新东西,比如通过webshell来建立正向代理等等,后续可能会把这些知识点补充上来。
无聊
无聊的时候查了下木马,发现之前已经有很多前辈上来过了,有三个大马在上面挂着的,233333
- HTTP Basic Authentication验证WCF Data Service
- 移除WordPress 仪表盘首页的“插件”“其它WordPress 新闻”小工具
- 解决VMware 7在Windows 7上无法上网的问题
- Windows Server 2008群集仲裁机制
- [C#2] 5-迭代器
- 服务器未能识别 HTTP 标头 SOAPAction 的值
- 实用代码-C#获取本机网络适配器信息及MAC地址
- WordPress 自定义 login (登录页面)CSS 样式
- [C#1] 12-特性
- HTTP Basic Authentication for RESTFul Service
- [C#2] 4-可空类型、静态类
- jquery 操作css 尺寸
- Windows 7上IIS出现http 500错误
- [C#2] 2-匿名方法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android编程实现使用handler在子线程中更新UI示例
- Android编程实现图片放大缩小功能ZoomControls控件用法实例
- 详解Android MacAddress 适配心得
- Android编程使用GestureDetector实现简单手势监听与处理的方法
- 【MySQL】通过SQL_Thread快速恢复binlog
- 渗透系列之flask框架开启debug模式漏洞分析
- Android之ImageSwitcher的实例详解
- Android中HTTP请求中文乱码解决办法
- Android编程之播放器MediaPlayer实现均衡器效果示例
- Android studio点击跳转WebView详解
- Android webveiw 出现栈错误解决办法
- Android开发之实现手势滑动的功能
- Android编程实现带有单选按钮和复选按钮的dialog功能示例
- Android中Retrofit 2.0直接使用JSON进行数据交互
- Android自定义Drawable实现圆形和圆角