这一个文章和我以前发布的一个文章正好成了一个对比(文章连接),如果上一次是茅。那么此次这个就是盾了.为什么这样说?请看一下上一篇的文章。因为上一次是直接修改数据库的防下载表而不会造成数据沉淀在数据库里面。那么换一个思想来讲。假设在数据库当中并没有这一个防下载表。但是却有防下载功能。
例图:
这一个文章和我以前发布的一个文章正好成了一个对比(文章连接),如果上一次是茅。那么此次这个就是盾了.为什么这样说?请看一下上一篇的文章。因为上一次是直接修改数据库的防下载表而不会造成数据沉淀在数据库里面。那么换一个思想来讲。假设在数据库当中并没有这一个防下载表。但是却有防下载功能。
例图:
先要在此感谢evil的提醒,昨天(2009-3-11)时上网后。发现网上有很多新版本的SHELL发布。而且还声称是终结版(我自己都没把自己终结。倒被你终结了).而且采用了加密手段。。现在我将下载回来程序。。打开并分析一下。现在把报告给大家。请慎重使用。。。。
心动吧asp在线-不加密加强版-是市面上目前功能最强的.速度最好的一款asp后门
此内部版修正了:关于无端口的sql连接出错.通用三种SQL连接方式
对于SQL语句,大家还都习惯于其的空格,比如select id from [name],如果中间没有了空格,那就成了selectidfrom[name], 一滩糊涂!
对于空格,有许多替换方式,比如TAB空格,SQL数据库中的/**/,除了上面所说到几个空格的替代方法外,我发现用()括号在SQL中一样可以运行,比如上面的语句,就可以写成,select(id)from[name],有括号分隔,可以正常执行。
...
明生注:这一个篇文章让你学到不少的东西,特别晨突破防注入方面的手段,虽然有点老,但很适合学习用,所以转上来
作者:叉叉兵
这次继续爆hzhost6.5虚拟主机管理系统的SQL注入漏洞。
只讲两个要点。
第一,如何拿网站管理员权限。
第二,如何备份木马。
这次不是简单的注射点,而是经过安全函数过滤的了点。由于对方没有将变量用单引号包起来,而过滤函数又未过滤完全,导致我们有机会进行注射。
我这次还做了个动画。一并发放。希望能让大家玩得"happy"!哈哈。。。
由于我写了很长,而且很累了,所以希望大家回帖鼓励一下。故设置强制回复!
漏洞存在于hzhosthzhost_mastercontrolot2_mngot2_lst.asp文件中!
引用:
-------------------------13-15行----------------------------
querytype=SafeRequest("querytype") //saferequest函数接受数据
if chk_int(querytype)=false then //检查是否是整数
ErrMsg="<font color=#ff0000>对不起</font>,非法操作!..."
-------------------------37-42行---------------------------
elseif querytype=5 then //如果类型为5。就接受qu1数据!
qu1=trim(SafeRequest("qu1")) //saferequest函数接受数据,他自己定义的saferequest
发现代码中并无出奇, 只是将几年前的冷饭再炒.因为多年过去了, 可能有人疏忽, 多试一些总有人中招的.
注入方式中数字字段是最容易进入的. 文本也可以, 但在QUERYSTRING中提交文本的情况不如数字多.
最常见的就是形如 news.asp?id=3
在ASP中,疏忽的写法为
aspID=request("id")
SQL="SELECT * FROM NEWS WHERE ID=" & aspID
SET RS=Conn.EXEC(SQL)
这里的ID完全没有保护, 如果ID是一个字符串, 很容易就注入了
例如ID=3;delete%20from%20news;
直接删除NEWS表记录
对于文本来说, 例如news.asp?keyword=abc
aspKeyword=request("keyword")
SQL="SELECT * FROM NEWS WHERE TITLE LIKE '%" &aspKeyword& "%'
算不上原创,就不写了。
文章的想法,就是学习记录一下这个学习的过程……
没有创新的东东,都是前辈的东西。自己的总结……
前些阵子讯时系统爆出了很多洞,先看他的怎么写的,下面是从他的admin_conn.asp文件中找到的。
sss=LCase(request.servervariables(”QUERY_STRING”))
if instr(sss,”select”)<>0 or instr(sss,”inster”)<>0 or instr(sss,”delete”)<>0 or
instr(sss,”(”)<>0 or instr(sss,”‘or”)<>0 then
response.write “你的网址不合法”
response.end
end if
代码使用了 request.servervariables的方法来获得传递过来的数据,然后赋值给sss。再判断传递过来的sss变量中是否含有 select,inster等敏感的字符串,只要有就结束程序。给普通注入造成了极大的麻烦,需要有新的东西出现来突破这个防注入。
现已知的有两种方法: