2010年07月28日
by 江小邪
74 Views
0 comments
最近我的网站经常把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:
ASP,
js,
sql,
url,
人,
代码,
工具,
数据,
数据库,
方法,
服务器构建&安全,
程序,
类,
网站,
诫,
连接,
防注入
相关日志
服务器构建&安全
2010年07月28日
by 江小邪
66 Views
0 comments
开始——运行regedt 启动注册表编辑器
找到HKEY_LOCAL_MACHINE窗口,选中SAM\SAM,然后点菜单中的权限设置,这时候我们可看到Administrators组只具有特殊权限,而SYSTEM账号却拥有全部控制权限,想一想这是为什么呢?其实很容易理解,SYSTEM账号是系统启动时候需要的账号,很多系统内核程序和服务程序大都是以该账号的权限运行的,若权限太低的话,恐怕我们的系统就运行不了!现在我们需要做的是更改Administrators权限(一定要在高级选项中记住该权限内容以备后用)为全部控制,这样我们就可以访问SAM下的信息了。
再次运行regedit:
此时HKEY_LOCAL_MACHINE\SAM\SAM下就有东西了,步步深入一直找到:
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000001F5 和 HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names\Guest
删除000001F5和Guest,然后退出regedit,再次运行regedt32,恢复Administrators对sam的权限(还记得Administrators的特殊权限吗?一定要记得啊,实在没有记住的话找其它同系统的机器看看也行,是一样的),这样是为了安全考虑,防止用户不小心删除系统账号。
进入dos窗口:
>net user
看看,会看大guest不见了,同样使用系统管理器的用户和组查看也是没有的了。这样就大功搞成了!
========
需要提醒的是:
1、不熟悉注册表编辑的一定不要乱来,否则可能导致系统崩溃。
2、删除前可考虑通过注册表的导出功能对删除的部分进行备份,以便恢复。 深入去玩的方法是:
可通过编辑注册表的SAM信息可轻松删除或改动其它账
2、可编写程序以SYSTEM权限运行来访问注册表中的SAM信息实现删除guest。
标签Tags:
domain,
方法,
服务器构建&安全,
程序,
系统,
诫
相关日志
服务器构建&安全
2010年07月28日
by 江小邪
70 Views
0 comments
软件作者: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:
2008,
code,
div,
domain,
ie,
include,
mod,
path,
web,
webs,
上传,
代码,
密码,
数据,
方法,
服务器构建&安全,
源代码,
程序,
诫,
说明,
软件,
链接
相关日志
服务器构建&安全
2010年07月26日
by 江小邪
76 Views
0 comments
(全文…)
标签Tags:
apache2,
code,
iis6.0,
include,
mysql,
path,
PHP,
PHP,
php.ini,
server,
session,
sql,
url,
web,
上传,
中文,
兼容,
初学者,
区别,
失败,
密码,
应用程序,
数据,
数据库,
方法,
版本,
程序,
网站,
网络编程,
解决,
解决方法,
设计,
诫,
邮件,
错误,
页面,
验证
相关日志
PHP, 网络编程
2010年07月26日
by 江小邪
72 Views
0 comments
Sockets在PHP中是没有充分利用的功能。今天你将看到产生一个能使用客户端连接的服务器,并在客户端使用socket进行连接,服务器端将详细的处理信息发送给客户端。
当你看到完整的socket过程,那么你将会在以后的程序开发中使用它。这个服务器是一个能让你连接的HTTP服务器,客户端是一个Web浏览器,这是一个单一的 客户端/服务器 的关系。 (全文…)
标签Tags:
PHP,
PHP,
php.ini,
server,
web,
代码,
函数,
区别,
实例,
应用程序,
成功,
操作系统,
数据,
注释,
浏览器,
程序,
类,
系统,
网络编程,
英文,
获取,
解决,
诫,
连接,
错误,
页面
相关日志
PHP, 网络编程
2010年07月26日
by 江小邪
65 Views
0 comments
一、 内存
在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:
ie,
PHP,
PHP,
web,
代码,
函数,
应用程序,
扩展函数,
搜索,
操作系统,
方法,
源代码,
版本,
程序,
系统,
网络编程,
解决,
设计,
诫,
错误
相关日志
PHP, 网络编程
2010年07月26日
by 江小邪
83 Views
0 comments
PHP实现对文本数据库的数据显示、加入、修改、删除、查询五大基本操作的方法
我用一个留言本程序作为例子,阐述PHP实现对文本数据库的数据显示、加入、修改、删除、查询五大基本操作的方法。
此文本数据库共有字段10个:客户IP、发言时间、客户名、客户EMAIL、客户主页地址、留言表情图片名、客户QQ、客户形象图片、留言内容、管理员回复内容。
1、加入数据程序段。
$date=date(“Y-m-d H:i:s”);//取得系统时间
$ip = $HTTP_SERVER_VARS[REMOTE_ADDR]; //取得发言的IP地址
$text=encode($gb_text);//去掉留言内容后面的空格.
$fp=fopen(“gb.dat”,”a”);//以只写模式打开gb.dat文本文件,文件指针指向文件尾部.
$str=$ip.” ”.$date.” ”.$gb_name.” ”.$gb_email.” ”.$gb_home.” ”.$face.” ”.$gb_qq.” ”.$head.” ”.$text.” ”.$reply.”\n”;//将所有留言的数据赋予变量$str,” ”的目的是用来今后作数据分割时的数据间隔符号。
fwrite($fp,$str);//将数据写入文件
fclose($fp);//关闭文件
showmessage(“留言成功!”,”index.php”,”3″);//留言成功,3秒后自动返回主界面。
其中的$gb_name 、$gb_email、$gb_home、$face、$gb_qq、$head、$gb_text、$reply是由发言表单传过来的数据。
(全文…)
标签Tags:
code,
PHP,
PHP,
server,
判断,
图片,
成功,
搜索,
数据,
数据库,
方法,
程序,
类,
系统,
网络编程,
获取,
表单,
诫,
连接,
页面
相关日志
PHP, 网络编程
2010年07月26日
by 江小邪
35 Views
0 comments
第一点: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:
include,
path,
PHP,
PHP,
代码,
函数,
区别,
失败,
程序,
类,
网络编程,
错误,
页面
相关日志
PHP, 网络编程
2010年07月26日
by 江小邪
50 Views
0 comments
AJAX bandwagon是个好去处。它带给你更快、更高效、更强动态的应用。但它也有自身的缺陷。
初一看,具备一些常识似乎就能避免这些缺陷,在一定程度上,的确如此。但从DHTML起源来看,AJAX应用程序充满了结构性差异。不论你在应用程序开发工作中掌握了多少常识,从别人犯的错误中吸取教训也是有好处的。我们称这些错误为“七宗死罪”,但它们不能代表全部的错误。
事实上,在你犯这些致命过失之前,你可能首先犯了一些较轻的错误。因此我们从这里着手。这是每个人都可能犯的错误。这些错误是多么普遍,通过Google搜索一下,你就可以发现大部分的错误。
(全文…)
标签Tags:
ajax,
dhtml,
google,
html,
javascript,
JavaScript&Ajax,
url,
人,
应用程序,
搜索,
新手,
方法,
更新,
浏览器,
程序,
网络编程,
自身,
设计,
诫,
链接,
错误,
页面
相关日志
JavaScript&Ajax, 网络编程
2010年07月26日
by 江小邪
61 Views
0 comments
Ajax的核心是JavaScript对象 XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。
在创建Web站点时,在客户端执行屏幕更新为用户提供了很大的灵活性。下面是使用Ajax可以完成的功能:
* 动态更新购物车的物品总数,无需用户单击Update并等待服务器重新发送整个页面。
* 提升站点的性能,这是通过减少从服务器下载的数据量而实现的。例如,在Amazon的购物车页面,当更新篮子中的一项物品的数量时,会重新载入整个页面,这必须下载32K的数据。如果使用Ajax计算新的总量,服务器只会返回新的总量值,因此所需的带宽仅为原来的百分之一。
* 消除了每次用户输入时的页面刷新。例如,在Ajax中,如果用户在分页列表上单击Next,则服务器数据只刷新列表而不是整个页面。
* 直接编辑表格数据,而不是要求用户导航到新的页面来编辑数据。对于Ajax,当用户单击Edit时,可以将静态表格刷新为内容可编辑的表格。用户单击Done之后,就可以发出一个Ajax请求来更新服务器,并刷新表格,使其包含静态、只读的数据。
一切皆有可能!但愿它能够激发您开始开发自己的基于Ajax的站点。然而,在开始之前,让我们介绍一个现有的Web站点,它遵循传统的提交/等待/重新显示的范例,我们还将讨论Ajax如何提升用户体验。 (全文…)
标签Tags:
ajax,
html,
ie,
javascript,
JavaScript&Ajax,
status,
url,
web,
xml,
xmlhttp,
代码,
兼容,
函数,
分页,
容器,
对象,
属性,
常用,
应用程序,
引入,
数据,
方法,
更新,
浏览器,
程序,
系统,
网络编程,
节点,
表格,
诫,
说明,
连接,
页面
相关日志
JavaScript&Ajax, 网络编程