作者:whoamiecho

来源:ichunqiu

本文参加i春秋社区原创文章奖励计划,未经许可禁止转载!
一.  过程
1.1、事情起因:暴力破解
测试给了个普通用户账号,可以登录。APP一来就要登陆,遇到这种情况只能先抓个登陆的包看看是个什么情况,登陆时抓取数据包如下:

发现验证码是本地验证的,并没有发送到服务端去。那就好办了,二话不说先爆破试试。

        爆破了半天也没爆破处能登陆的用户。过了一会儿发现,用户名带入引号时居然报错了。这样的情况要么是被拦截了,要么存在注入。不巧是后者。看来以后爆破的字典里面都要带入几个常用的fuzzing语句啊。
        登陆点注入先试试万能密码。结果没能登陆,只能走注入拿密码的道路了。先来看看注入点:

GET
/AppBusi/login.jsp?jsoncallback=jQuery16407473715976811945_1478502187123&loginCode=admin'&loginPass=111111&pf=1&_=1478502216927
HTTP/1.1

Host: *.*.*.*:*

在loginCode字段后面加上单引号测试,发现报错。

使用sqlmap对loginCode参数进行注入测试:
sqlmap.py -r C:\Users\echo\AppData\Local\Temp\\1478502827550.req –dbs

得到众多数据库:

找当前数据库的管理员表,当我看到1762个表的时候腿都软了。我还是假装找了下,没找到。机制的管理员将好几个站点的数据库都放在了这里面,什么OA系统、BBS啊。香菇!

不能这样干坐着。先用普通测试用户登录进去看看是个什么情况。一顿狂点抓包测试。服务端做的真的很烂,一堆SQL注入,XSS。其他的就不多说了。



1.2、重点来了-任意文件下载漏洞

为了看看app都有什么功能,开启fidder一顿狂点,抓了所有的包,一个一个看看,当看到下面这个包时,我嘴角微微上扬了45度。

http://*.*.*.*:*/AppBusi/Flow/sat_down.jsp?filePath=E:/apache-tomcat-6.0.41/webapps/jxzmcc/files/satflow27/9d102ebd32dca338053c49ea1d015b37.txt
明显的任意文件下载漏洞,还带入了绝对路径。

构造链接下载网站源码:
http://*.*.*.*:*/AppBusi/Flow/sat_down.jsp?filePath=E:/apache-tomcat-6.0.41/webapps/jxzmcc/index.jsp

提示是个后台管理。访问http://*.*.*.*:*/jxzmcc/index.jsp发现不能能访问。猜测这么几个情况:
1:访问端口不对。
2:网站只能APP访问。
3:在内网。

先用nmap扫一下端口看看有些什么对外的服务:nmap -vv -p 1-65535 *.*.*.*

发现唯一能访问的8080端口还是代理转发出来的。证明了网站在内网。现在只能通过下载文件来找其他的东西了。最先想到的就是下载web.xml,server.xml、tomcat-users.xml。但是WTF,管理员真的是太懒了,居然都没配置。
为了证明站点在内网,想到可以下载http访问日志。于是翻看了下本地tomcat日志存储的格式:

构造好文件名:localhost_access_log.2016-10-31.txt。访问:
http://*.*.*.*:*/AppBusi/Flow/sat_down.jsp?filePath=E:/apache-tomcat-6.0.41/logs/localhost_access_log.2016-10-31.txt。

不出预料,访问均来自内网。又下载了几个日志,都是一样的情况。看来这个站是拿不到了,本以为到这里就要到头了。

1.3、转机出现
突然想到前面APP报错时候的tomcat版本不是6.0.41,而这里下载的站点的版本是6.0.41。说明这个站根本不在APP接口站的目录下。
通过访问不存在的链接,http://*.*.*.*:*/AppBusi/login.jsp121212报错显示出中间件版本信息。Tomcat/7.0.54

如果两个tomcat的安装目录相同的话,E:/apache-tomcat-7.0.54/目录应该是存在的,抱着试一试的态度构造了另一个下载地址:
http://*.*.*.*:*/AppBusi/Flow/sat_down.jsp?filePath=E:/apache-tomcat-7.0.54/logs/localhost_access_log.2016-10-31.txt
奇迹发生了。我都佩服我自己,貌似看穿了管理员的套路。在日志中发现了三个东西:
一个对外的管理后台:http://*.*.*.*:*/jxc/login.jsp

当前APP接口:http://*.*.*.*:*//AppBusi/login.jsp
另一个APP接口:http://*.*.*.*:*//JXZXAPP/xtgl/login.jsp


1.4、意外收获-后台登陆密码找回漏洞
如果能选择APP或者WEB我会优先试试WEB站。是管理后台没有验证码,又尝试了爆破,每一个请求都302跳转,爆破失效。


运气真是不行。也没有注入什么的。身残志坚的我没有放过任何一个链接,点击了 “获取密码”。

网站提示未查到admin用户的手机号。

通过本地元素调试填入自己的手机号,发包。

抓包:


腻害了我的哥,居然在在第二个数据包中看到密码:s3M1Kz

通过动态密码成功登陆了后台。

但是并没有什么luan用。后台什么功能都没有。Getshll失败。


1.5、最后的挣扎


在心有不甘的情况下,找了找另一个APP接口的情况。首先想到找出这是个什么APP,看看能不能有所突破,结果发现这个APP和测试的APP功能基本相同。看来是没戏了。在日志中还找到了一个未授权访问的上传点:

访问:http://*.*.*.*:*//JXZXAPP/gdsl/upload1.jsp

不论上传什么都谈框,上传失败。路都死完了。SQL注入也没能找到后台登陆地址,相比也是徒劳。Oracle时DBA权限,但是却没能直接GETSHELL。

二.  来个小姐(结)
想说的一下几点:
1:jsp的任意文件下载不像php那样包含文件。要想利用目前比较好的方法就是下载中间件配置文件,日志文件。liunx的话可以尝试下载/ect/passwd等等。
2:信息泄露还是有用的从找到Tomcat/7.0.54版本确定目录存在,从而扩大了攻击面。
3:找回密码,暴力破解有时候还是能有意外收获。

更多安全技术、精品好文、白帽黑客大佬尽在:http://bbs.ichunqiu.com/portal.php

一次失败的APP业务渗透测试的更多相关文章

  1. Android App安全渗透测试(一)

    一.            实验环境搭建 1.      安装JDK 2.      安装Android Studio 3.      模拟器或真机 我的是夜神模拟器和nexus 工具 Apktool ...

  2. 【原创】记一次对X呼APP的渗透测试

    获取CMS并本地安装 X呼是一款开源的客服CMS系统,访问官网,下载安卓版本的app和源码本地搭建: 发现这cms预留admin表中的用户就不少.... 直接用预留的密码解密,然后就能登录手机APP了 ...

  3. Android App渗透测试工具drozer,Qark,Androguard

    一. drozer简介 drozer(以前称为Mercury)是一款Android安全测试框架. drozer允许您通过承担应用程序的角色并与Dalvik VM,其他应用程序的IPC端点和底层操作系统 ...

  4. Android App渗透测试工具汇总

    网上搜集了一些App安全学习教程及工具,项目地址:https://github.com/Brucetg/App_Security 一. drozer简介 drozer(以前称为Mercury)是一款A ...

  5. 移动安卓App+BurpSuite的渗透测试

    从Android 7.0及以上版本开始,安卓系统更改了信任用户安装证书的默认行为,用户安装的证书都是用户证书,因此不管是filddle还是burp,都是把他们的根证书安装到了用户证书,而有部分移动ap ...

  6. app渗透测试 服务端篇

    基本知识 平时安装的应用位置,里面主要是odex可运行文件 /data/app 系统应用位置(需要root权限),里面主要是odex可运行文件 /system/app 应用的数据相关的位置,里面包含一 ...

  7. chapter1 渗透测试与metasploit

    网络对抗技术课程学习 chapter1 渗透测试与metasploit 一.读书笔记 二.渗透测试 通过模拟恶意攻击者的技术与方法进行攻击,挫败目标系统安全控制措施,取得访问控制权,并发现具备业务影响 ...

  8. APP弱网测试

    APP弱网测试   App弱网测试方法,常用工具有使用fiddler进行网络模拟,也可以使用Network Emulator Toolkit控制模拟网络,相对来说Network Emulator To ...

  9. 互联网App应用程序测试流程及测试总结

    互联网App应用程序测试流程及测试总结 1. APP测试基本流程 1.1流程图 仍然为测试环境 Pass 1.2测试周期 测试周期可按项目的开发周期来确定测试时间,一般测试时间为两三周(即15个工作日 ...

随机推荐

  1. 30天C#基础巩固-----多态,工厂模式

         自己要有自信,相信自己可以找到好的工作.面对校招,企业更加看重自己的基础,这30天就把C#的基础好好的复习,学习下.笔记一定要认真的记录,这样自己复习回顾的时候就有了可以参考的东西了. 一: ...

  2. 【转】C#类似Jquery的html解析类HtmlAgilityPack基础类介绍及运用

    Html Agility Pack下载地址:http://htmlagilitypack.codeplex.com/ Html Agility Pack 源码中的类大概有28个左右,其实不算一个很复杂 ...

  3. 【吐槽】IM群里几种我认为愚蠢的提问方式

    一.“有人吗?” 你能得到一句[在,请说]的答复我就服了你,这样问的结果往往是等半天没一个人鸟你,悲观的你或者就此凄凉的退群了,感概人情冷暖的同时甚至开始怀疑人生:积极的你或者这才意识到~要不干脆说问 ...

  4. LCA---Tarjan算法

    本问题中Tarjan算法不需要设置栈和dfn,low标号,而是设置了并查集. 通过一次dfs遍历即可找出所有节点对的lca.将这样一次读取所有查询,计算一次后返回所有查询lca的算法称为离线算法 涉及 ...

  5. LeetCode4:Add Two Numbers

    题目: You are given two linked lists representing two non-negative numbers. The digits are stored in r ...

  6. cros解决跨域

  7. EC笔记,第一部分:2.尽量以const,enum,inline代替#define

    02.尽量以const,enum,inline代替#define 原因:编译前的预处理会替换宏,所以调试的时候找不到错误 1.const 尽量用const替代常量宏定义 两种特殊情况: (1).常量指 ...

  8. 【Java每日一题】20161102

    package Nov2016; public class Ques1102 implements Parent{ @Override public void method() { } } inter ...

  9. Oracle数据库建表并用SQL编程分等级

    --创建学生表create table XS_543 ( XH char(6) not null , XM varchar2(20) not null, ZYM varchar2(10), XB ch ...

  10. 项目总结笔记系列 Social Hub KT Session2

    KT Session2: 主要是代码的实现(KT is knowledge Transfer) 如图所示,在整个Social Hub项目中,我们的项目Data Feed Service处于承上启下的作 ...