战绩榜

以下是最近找到的一些通用性漏洞,大部分漏洞都已经通知对方,如有顾忌之处请邮件联系我删除!

水浒英雄

最近又上了三台服务器:linchong(林冲)、wuyong(吴用)、wusong(武松),再加上之前的songjiang(宋江)、huarong(华荣)共五台服务器,希望以后有朝一日能将所有的水浒人物集齐。

卓有成效

很多时候我们可以通过优化一些习惯性的常规做法来提高我们的效率

Content Security Policy

CSP主要用来定义页面可以加载哪些资源,可以部分防止跨站脚本等危害.在CSP之前可以使用X-Frame-Options能有效防止ClickJaking(点击劫持)攻击.关于点击劫持以后再讲

浏览器支持

Content-Security-Policy
    - Chrome 26+
X-WebKit-CSP
    - Safari 5.1+
    - Chrome 14-25
X-Content-Security-Policy
    - Firefox 4+
    - Internet Explorer 10+

Example:

1
Content-Security-Policy: default-src 'self'

PHP Example:

1
header("Content-Security-Policy: script-src 'self'; ");

策略设置

描述
default-src ‘self’ cdn.wufeifei.com 定义所有资源类型使用默认加载策略
script-src ‘self’ js.wufeifei.com 定义JavaScript加载策略
style-src ‘self’ css.wufeifei.com 定义Style样式加载策略
img-src ‘self’ img.wufeifei.com 定义image图片加载策略
content-src ‘self’ 定义Xhr/Ajax/WebSockets/EventSource等请求的加载策略.不允许的话会出现400
font-src font.wufeifei.com 定义Web Font加载策略
object-src ‘self’ 定义\/\/\等标签引入的flash加载策略
media-src media.wufeifei.com 定义\/\等标签引入的多媒体加载策略
frame-src ‘self’ 定义iframe加载策略.有效防止ClickJacking(点击劫持)
sandbox allow-forms 定义请求资源使用sandbox
report-uri /report-uri 定义的策略如果不允许时,将POST一个请求到该地址

指令值

说明
* 允许任何内容
‘none’ 不允许任何内容
‘self’ 运行同源内容
data 运行data:协议(Base64图片)
www.wufeifei.com 允许加载指定域
*.wufeifei.com 允许加载子域
https://wufeifei.com 允许加载https指定域
https: 允许加载https资源
‘unsafe-inline’ 允许加载inline资源
‘unsafe-eval’ 允许动态加载js,如eval()

仅报告日志

正式加入生产环境时可以先仅收集不匹配的规则日志,观察一段时间没有问题再上生产环境

1
Content-Security-Policy-Report-Only: script-src 'self'; report-uri http://www.wufeifei.com/csp-report.html

加入上述代码后定义的加载策略还是会执行,只不过会POST一个JSON请求到csp-report.html上,格式如下:

1
{"csp-report":{"document-uri":"http://www.mogujie.com/","referrer":"http://www.baidu.com","violated-directive":"script-src 'self'","original-policy":"script-src 'self'; report-uri http://www.wufeifei.com/csp-report.html","blocked-uri":""}}

总结

CSP不支持所有浏览器是硬伤,不过开发工作量低,加上也能改善一部分安全,大家浏览器也不断的升级,以后还是一个趋势,推荐加入!

js瓷砖

JS瓷砖背景link
1
2
3
4
5
6
7
for (var line=1; line<60; line++) {
for(var i=1;i<29;i++) {
var s = (Math.floor((Math.random()*2)%2)) ? "╱" : "╲";
document.write(s);
}
document.writeln("<br>");
}

HttpOnly

HttpOnly是设置在浏览器中,使JavaScript无法获取Cookie数据,有效减少XSS危害

浏览器支持

2011年已超过99%浏览器支持HttpOnly

设置方法

1
ini_set( 'session.cookie_httponly', 1 );
1
header( "Set-Cookie: name=value; httpOnly" );

或者

1
setcookie('cookieName','cookieValue',3600,'/',false,TRUE);

总结

HttpOnly设置只需要增加一行代码即可有效的阻挡XSS等危害,建议大家马上使用起来提升网站安全!

破解Linux密码

Debian/Ubuntu

1
$ sudo apt-get install john

CentOS/RHEL/Fedora/ReadHat
(Download Link)[http://dag.wieers.com/rpm/packages/john/]

1
$ rpm -ivh john*

Crack Passwd

1
$ unshadown /etc/passwd /etc/shadown > /tmp/crack.passwd.db

Crack

1
$ john /tmp/crack.passwd.db

Show

1
$ john -show /tmp/crack.passwd.db

cksort

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/**
* 对数组某一键值排序
* @author Feei
* @param $array
* @param string $subkey
* @param null $subkey2
* @param bool $sort_ascending
*/
public static function cksort(&$array, $subkey = "id", $subkey2 = null ,$sort_ascending=false)
{
if (count($array))
$temp_array[key($array)] = array_shift($array);
foreach($array as $key => $val){
$offset = 0;
$found = false;
foreach($temp_array as $tmp_key => $tmp_val)
{
if(!$found and strtolower($val[$subkey]) > strtolower($tmp_val[$subkey]))
{
$temp_array = array_merge(
(array)array_slice($temp_array,0,$offset), array($key => $val),
array_slice($temp_array,$offset));
$found = true;
}
elseif(!$found
and $subkey2 and strtolower($val[$subkey]) == strtolower($tmp_val[$subkey])
and strtolower($val[$subkey2]) > strtolower($tmp_val[$subkey2]))
{
$temp_array = array_merge(
(array)array_slice($temp_array,0,$offset),
array($key => $val), array_slice($temp_array,$offset));
$found = true;
}
$offset++;
}
if(!$found) $temp_array = array_merge($temp_array, array($key => $val));
}
if ($sort_ascending) $array = array_reverse($temp_array);
else $array = $temp_array;
}

特殊符号

收集的一些特殊符号

朝花夕拾

一早就打算换博客了,Wordpress太臃肿了,贴个代码也不太方便。
最近事情比较多,打算慢慢的将之前积累的东西迁移到博客中来。