新写的一个xmlClass

六 29th, 2010

新写的xmlClass,有些简陋,不过常用的功能都可以直接调用了。

<%
'==============================================================
'   xmlClass v1.10.0617 by CatSeven
'==============================================================
'   文件:xmlClass.asp
'   功能:常用的XML处理
'   作者:苗启源(http://www.miaoqiyuan.cn)
'==============================================================
  class xmlClass
    Dim xmlobj

    Public Sub Class_Initialize
      set xmlobj = Server.CreateObject("Microsoft.XMLDOM")
    End Sub

    Public Sub Class_Terminate
      set xmlobj = Nothing
    End Sub

    '功能:从文件加载XML
    'f -> file 要保存的XML文件
    '     web://aaa.xml     根目录下的 myw3.xml
    '     path://myw3.xml   当前目录下的 myw3.xml
    '     E:/web/www/myw3.xml
    '     http://localhost/myw3.xml
    Public Sub Load(byval f)
      f = Mappath(f)
      xmlobj.load f
    End Sub

    '功能:将当前的数据保存到XML问及那
    'f -> file 要保存的XML文件
    '     web://aaa.xml     根目录下的 myw3.xml
    '     path://myw3.xml   当前目录下的 myw3.xml
    '     E:/web/www/myw3.xml
    '     http://localhost/myw3.xml
    Public Sub Save(byval f)
      f = Mappath(f)
      xmlobj.save f
    End Sub

    '功能:通过标签获取节点列表
    '参数:tag -> TagName
    '返回:符合条件的节点列表
    Public Function getTags(byval tag)
      dim p
      set p = xmlobj.getElementsByTagName(tag)
      set getTags = p
    End Function

    '功能:通过xPath获取节点列表
    '参数:str -> xpath 字符串
    '返回:符合条件的节点列表
    Public Function xPath(byval str)
      dim p
      set p = xmlobj.selectNodes(str)
      set xPath = p
    End Function

    '功能:设置节点属性
    '参数:obj -> 要设置属性的节点
    '      othervalue -> 属性值:比如 a=1&b=2  ==> <xxx a="1" b="2" />
    Public Sub setNode(byref obj,byval othervalue)
      dim valArr
      valArr = split(othervalue,"&")
      for i = 0 to ubound(valArr)
        if instr(valArr(i),"=")>0 then
          valDB = split(valArr(i),"=")
          obj.setAttribute valDB(0),valDB(1)
        end if
      next
    End Sub

    '功能:设置节点属性
    '参数:obj -> 节点列表,必须是一个列表,且只为列表中的第一项添加子节点。一般为:getTags,xPath返回的节点列表。
    '      xmlname -> 属性名。
    '      xmlvalue-> 属性值。
    Public Sub setAttribute(byval obj,byval xmlname,byval xmlvalue)
      for i = 0 to obj.length - 1
        obj(i).setAttribute xmlname,xmlvalue
      next
    End Sub

    '功能:删除当前节点
    '参数:obj -> 删除当前节点
    Public Sub Remove(byval obj)
      if obj.length>0 then obj(0).parentNode.removeChild obj(0)
    End Sub

    '功能:添加一个新的节点
    '参数:obj -> 节点列表,必须是一个列表,且只为列表中的第一项添加子节点。一般为:getTags,xPath返回的节点列表。
    '      nodename -> 节点名称(tagName)
    '       xmlname -> 索引属性。如果在当前文件中有节点名相同,且属性相同的节点,则不会新增节点
    '      valuearr -> 索引属性的值,必须是一个一元数组。
    '      othervalue -> 传递到setNode的属性,请参照 Public Sub setNode
    Public Sub Append(byval obj,byval nodename,byval xmlname,byval valuearr,byval othervalue)
      if obj.length<1 then Exit Sub
      for i = 0 to ubound(valuearr)
        if trim(valuearr(i))<>"" then
          if xPath("//"&nodename&"[@"&xmlname&"='"&valuearr(i)&"']").length=0 then
            set newNode = xmlobj.CreateElement(nodename)
            newNode.setAttribute xmlname,valuearr(i)
            setNode newNode,otherValue
            obj(0).appendChild(newNode)
          end if
        end if
      next
    End Sub

    '功能:获取节点属性列表
    '参数:obj -> 节点列表,必须是一个列表,且只为列表中的第一项添加子节点。一般为:getTags,xPath返回的节点列表。
    '      xmlname -> 属性名。
    '返回:一元数组,包含了所有的属性名
    Public Function getAttribute(byval obj,byval xmlname)
      dim Arr
      redim Arr(obj.length - 1)
      for i = 0 to obj.length - 1
        Arr(i) = obj(i).getAttribute(xmlname)
      next
      getAttribute = Arr
    End Function

    '功能:获取文件的路径
    'f -> file 要保存的XML文件
    '     web://aaa.xml     根目录下的 myw3.xml
    '     path://myw3.xml   当前目录下的 myw3.xml
    '     E:/web/www/myw3.xml
    '     http://localhost/myw3.xml
    '返回:文件的路径
    Private Function Mappath(byval f)
      if instr(f,"web://")>0 then
        f = replace(f,"web://","/")
        f = server.mappath(f)
      elseif instr(f,"path://")>0 then
        f = replace(f,"path://","")
        f = server.mappath(f)
      end if
      if left(LCase(f),7)<>"http://" then f = "file://" & f
      Mappath = f
    End Function

  end class
%>
标签: , , ,

com1文件不能删除

六 28th, 2010

com1不能删除

com1是不能直接创建的,攻击者可以利用\\.\漏洞来创建文件。
在资源管理器中不能直接删除,删除的时候用unc路径即可。
如果是隐藏只读文件,del是不能删除的

attrib \\.\E:\***\com1.asp -s -r -h
del \\.\E:\***\com1.asp

在Windows XP新建文件、文件夹或快捷方式时,系统的保留特殊设备名:CON,PRN,LPT,COM1,COM2,COM3,COM4,NUL、AUX,……不允许直接使用,但以特殊方法使用它们作为文件名或文件夹名后又能产生新的特别功能。如用下面命令建立新文档,不管文件类型扩展名是什么,文档中有无内容都不能正常打开,除非使用特殊方式打开浏览文档和对文档进行操作:
copy con \\.\d:\设备名.txt (文件扩展名可以为.RTF,.XLS,DOC,.WAV,.HTML,.MP3,.RM……)
MD \\.\D:\CON 或其它设备名,可以建立起能打开但不能删除的文件夹。
del \\.\D:\设备名.txt
RD \\.\D:\CON 或其它设备名

还有一个漏洞,是.\文件夹漏洞,很早以前我在博客中提到过,经常被病毒利用。下面就攻击者的使用性来说这两个漏洞的区别。

<%
set fso=server.createobject("Scripting.FileSystemObject")

'几个特殊文件的建立和删除方法
'asp可以创建,可以删除
'cmd可以创建,可以删除
'直接 创建 不可创建,不可删除,可浏览目录,不可查看文件
con = "\\.\" & Server.Mappath("con")
'fso.createfolder con
fso.deletefolder con

' .\ 漏洞
'asp可以创建,不可以删除
'cmd可以创建,可以删除
'直接 创建 不可创建,不可删除,不可浏览目录,不可查看文件
con = "\\.\" & Server.Mappath("abv") & "..\"
'fso.createfolder con
fso.deletefolder con
%>

这两种方法创建的文件(后门),在浏览器中均能正常访问,常常被挂马这利用。我猫七就深受其害。
如果你在遇到CON不能删除,PRN不能删除,LPT不能删除,COM1不能删除,COM2不能删除,COM3不能删除,COM4不能删除,COM5不能删除,COM6不能删除,COM7不能删除,COM8不能删除,NUL不能删除、AUX不能删除,……这种问题,知道怎么解决了把

一分钟安装LAMP环境

六 26th, 2010

联网下,一分钟安装LAMP环境。

Ubuntu下安装 apache2 + php5 + mysql 1. 安装运行环境
sudo apt-get install apache2
sudo apt-get install mysql-server
sudo apt-get install php5-common
sudo apt-get install php5-gd
sudo apt-get install php5-mysql
sudo apt-get install libapache2-mod-php5

apache2默认的 sites路径在
/var/www/sites

哈哈,很快把

2. 配置php5

sudo gedit /etc/php5/apache2/php.ini
修改允许最大使用内存,查找

memory_limit = 8M
修改为

memory_limit = 32M
修改允许最大上传尺寸,查找

upload_max_filesize = 2M
修改为

upload_max_filesize = 8M
允许 mysql 和 gd 模块,检查文件最后是否包含下面的代码,如果没有添加上。(默认是在配置文件最后有添加的,检查一下以防万一)

extension=mysql.so

extension=gd.so
保存并关闭文件。

3. 配置 mysql,让它支持其它客户端访问,如果你不需要就不用修改。

sudo gedit /etc/mysql/my.cnf
查找 文件

skip-networking
修改为

#skip-networking
保存并关闭文件。

重 新启动 mysql

sudo /etc/init.d/mysql restart
插入其它客户端访问用户(由于默认的帐号是 root@localhost,而客户端却使用root@localhost.localdomain 登录)

mysql -u root -e “GRANT ALL PRIVILEGES ON *.* TO root@localhost.localdomain

标签: , , , ,

IIS支持Python的方法

六 25th, 2010

    IIS支持Python,这是一个多么令人心动的尝试啊。今天我就实现了IIS支持Python。
   环境IIS6 + Python2.5,其他版本都差不多。
   新建Web服务扩展,py,要求的文件填写C:\Python25\python.exe %s %s。网站>属性>主目录配置>映射>添加。扩展名:.py,可执行文件填写C:\Python25\python.exe %s %s。确定,怎么出错?改成”C:\Python25\python.exe”  %s %s,哈哈。可以了,测试一下。

print ('Status: 200 OK')
print ('Content-Type: text/html')
print ('')
print ('<h1>Hello, Python</h1>')

浏览器访问一下,正常,哈哈哈。。。成功了。

标签: ,

服务器被攻击了怎么办,记一次服务器被攻击的解决方案

六 24th, 2010

服务器被攻击了怎么办,记一次服务器被攻击的解决方案

今天公司有台服务器所有网站打不开,怀疑是被人攻击了,联系机房,竟然没有发现攻击。那就奇怪了。

开启IIS,所有站点马上都不能访问,服务器ping不通。

郁闷,想起用nc看看到期有什么站点是什么站点的请求在访问。

关闭IIS,执行nc -L -n -p 80监听80端口,看看客户提交了什么数据。为了方便调用,nc -L -n -p 80>>log.txt。多执行几次,供我们分析数据。

重复监听100多次,通过分析,下边的一个数据引起了我的怀疑。

GET /ccdos.php?ip=***&port=80&time=100 HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Accept-Language: zh-cn
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)
Host: ***
Connection: Keep-Alive

将ccdos.php下载到本地,访问 localhost/ccdos.php?ip=localhost&port=80&time=100,网卡流量没有变化,但是通过局域网的另一台电脑访问我的电脑的WEB站点,不能访问,ping也ping不同。改成localhost/ccdos.php?ip=192.168.99.173&port=80&time=100,网卡流量马上到达可99%。看来就是这个站点的问题,把这个站点关掉。开始IIS,服务器又正常了。

标签:

How to improve your conversion rate

六 23rd, 2010

 In the modern society,A large number of company have their own website with their product information.They want to sell their products via Internet,In order to drive large traffic to their site.  they spend lots of money on SEO or google adsense.  SEO or Google adsense can bring visitor to them, But most of them have ignore the conversion rate, Most of visitors leave their site without buy anything.
  Conversion rate means the percentage of visitors turned into customers who place orders or sign up during a given period. The higher conversion rate you get, the more products you can sell. So I wanna to discuss the topic about how to improve your Conversion rate.
  In order to improve your conversion rate, you should make the visitors have confidence to your products. Personally speaking, A live chat may give visitors more confidence. The visitors can communicate with a real person instead of communicate with machine.The visitors will suppose you as a friendly person and buy your products. 
  If you want to get an live chat function on your website. A live chat software is necessary.A live chat software not only can sell your products, but also can give the live support to your custerm,the good post-sale service can make your sell more products.  There are many live chat  software on  the Internet. you can choose a suitable software.
  If you want to get more information about how to improve your conversion rate, you can pay a visit to www.livemoz.com.

标签: