利用多参数提高 webshell 爆破速度
0x00 原理
之前在https://www.t00ls.net/viewthread.php?tid=36985看到这个思路的。
Apache下默认同时允许接收1000个参数;IIS下默认同时允许接收5883个参数,可以一次提交多个密码,从而快速爆破。
more...
之前在https://www.t00ls.net/viewthread.php?tid=36985看到这个思路的。
Apache下默认同时允许接收1000个参数;IIS下默认同时允许接收5883个参数,可以一次提交多个密码,从而快速爆破。
more...由于博客更换了域名,原来百度收录的都成了死链,所以做一下301重定向
我使用的是github搭建的博客,都是html的文件,先把html文件都上传到自己的服务器上,
修改dns使原域名指向服务器,让百度收录的链接都能够访问,然后设置301
服务器环境:Ubuntu 14.04.5、Apache2
$ sudo a2enmod rewrite
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)$ http://wyb0.com/$1 [L,R=301] # 这里换上新域名
# AllowOverride None 改为AllowOverride All
$ sudo vim /etc/apache2/apache2.conf
<Directory /var/www/>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
$ sudo /etc/init.d/apache2 restart

# 环境 Ubuntu 14.04
reber@ubuntu:~/Desktop$ sudo apt-get install openssh-server
reber@ubuntu:~/Desktop$ sudo apt-get install openssh-client
reber@ubuntu:~/Desktop$ sudo apt-get install git
reber@ubuntu:~/Desktop$ wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/trusty/main/g/gitlab-ce/gitlab-ce_8.8.0-ce.0_amd64.deb
reber@ubuntu:~/Desktop$ sudo dpkg -i gitlab-ce_8.8.0-ce.0_amd64.deb
reber@ubuntu:~/Desktop$ sudo vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.188.160:80'
......
gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['gitlab_email_from'] = 'xxxxxx@163.com'
......
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "xxxxxx@163.com"
gitlab_rails['smtp_password'] = "111111" # 客户端授权密码
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
......
user["git_user_email"] = "xxxxxx@163.com"
# 只要修改配置文件就要reconfigure
reber@ubuntu:~/Desktop$ sudo gitlab-ctl reconfigure
reber@ubuntu:~/Desktop$ sudo gitlab-ctl status
run: gitlab-workhorse: (pid 15918) 16s; run: log: (pid 15290) 200s
run: logrotate: (pid 15310) 187s; run: log: (pid 15309) 187s
run: nginx: (pid 15297) 193s; run: log: (pid 15296) 193s
run: postgresql: (pid 15169) 258s; run: log: (pid 15168) 258s
run: redis: (pid 15076) 269s; run: log: (pid 15075) 269s
run: sidekiq: (pid 15384) 141s; run: log: (pid 15279) 206s
run: unicorn: (pid 15360) 158s; run: log: (pid 15246) 212s
reber@ubuntu:~/Desktop$ netstat -anlt
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
# 其中8080是unicore的端口
# 80是nginx的端口,nginx反向代理ruby开的web服务unicore
有时出现502,可以刷新网页或者再次reconfigure
有时需要sudo gitlab-ctl restart nginx
初次访问Web页面会强制让你改密码,初始用户名/密码:root/5iveL!fe
禁止前台注册
登录后:右上角 Admin Area –> Settings –> Sign-in Restrictions
然后保存
修改admin的邮箱
Admin Area –> Users –> Edit 然后保存
原文链接:http://www.wyzu.cn/2015/0123/107167.html
/*
* 名称和值传送时必须是经过RUL编码的
* cookie绑定在指定的域名下,非本域无法共享cookie,但是可以是在主站共享cookie给子站
* cookie的名称不分大小写;同时建议将cookie URL编码
* 建议针对cookie设置expires、domain、 path;每个cookie小于4KB
**/
(function(global){
function getCookiesObj() {
//获得cookie对象
var cookies = {};
if (document.cookie) {
var objs = document.cookie.split('; ');
for (var i in objs) {
var index = objs[i].indexOf('='),
name = objs[i].substr(0,index),
value = objs[i].substr(index+1,objs[i].length);
cookies[name] = value;
}
}
return cookies;
}
function set(sName,sValue,Opts) {
//设置cookie
// Opts expires,path,domain,secure
if (sName && sValue) {
var cookie = encodeURIComponent(sName)+'='+encodeURIComponent(sValue);
if (Opts) {
if (Opts.expires) {
var date = new Date();
date.setTime(date.getTime()+Opts.expires*24*3600*1000)
cookie += '; expires=' + date.toGMTString();
}
if (Opts.path) {
cookie += '; path=' + Opts.path;
}
if (Opts.domain) {
cookie += '; domain=' + Opts.domain;
}
if (Opts.secure) {
cookie += '; secure';
}
}
document.cookie = cookie;
return cookie;
} else {
return '';
}
}
function getCookie(name) {
//得到某个cookie
return decodeURIComponent(getCookiesObj()[name]) || null;
}
function getCookies() {
//得到所有cookie
return getCookiesObj();
}
function remove(name) {
//移除某个cookie
if (getCookiesObj()[name]) {
var date = new Date();
date.setDate(date.getDate()-1);
document.cookie = name + '=; expires='+date.toGMTString();
}
}
function clear() {
// 移除所有cookie
var cookies = getCookiesObj();
var date = new Date();
date.setDate(date.getDate()-1);
for (var key in cookies) {
document.cookie = key + '=; expires='+date.toGMTString();
}
}
function noConflict(name) {
//解决冲突
if (name && typeof name === 'string') {
if (name && window['cookie']) {
window[name] = window['cookie'];
delete window['cookie'];
return window[name];
}
} else {
return window['cookie'];
delete window['cookie'];
}
}
global['cookie'] = {
'set': set,
'getCookies': getCookies,
'getCookie': getCookie,
'remove': remove,
'clear': clear,
'noConflict': noConflict
};
})(window);
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>cookie example</title>
</head>
<body>
<script type="text/javascript" src="./cookie.js" ></script>
<script type="text/javascript">
console.log('----------cookie对象-------------');
console.log(cookie);
console.log('----------对象-------------');
console.log(cookie.getCookies());
console.log('----------设置cookie-------------');
console.log(cookie.set('name', 'wlh'));
console.log('----------设置cookie 123-------------');
console.log(cookie.set('name', 'wlh123'));
console.log('----------设置cookie age-------------');
console.log(cookie.set('age', 20));
// alert(document.cookie);
console.log('----------获取cookie-------------');
console.log(cookie.getCookie('name'));
console.log('----------获取所有-------------');
console.log(cookie.getCookies());
console.log('----------清除age-------------');
console.log(cookie.remove('age'));
console.log('----------获取所有-------------');
console.log(cookie.getCookies());
console.log('----------清除所有-------------');
console.log(cookie.clear());
console.log('----------获取所有-------------');
console.log(cookie.getCookies());
console.log('----------解决冲突-------------');
var $Cookie = cookie.noConflict(true /*a new name of cookie*/);
console.log($Cookie);
console.log('----------使用新的命名-------------');
console.log($Cookie.getCookies());
</script>
</body>
</html>


CDN的全称是Content Delivery Network,即内容分发网络。主要功能是在不同地点缓存内容,
运营商会在全国各地的节点上缓存你的网站网页,通过负载均衡技术,将用户的请求定向到最合适的
缓存服务器上去获取内容,比如说你是上海用户,你访问www.aa.com就会被重定向到上海的节点,
你是北京用户,你也访问www.aa.com,但是你会被重定向到上海的节点。
首先安装dnspython这个第三方模块:pip install dnspython
more...ajax.html代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script>
function showHint(str) {
var xmlhttp;
if (str.length==0) {
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest) {
// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
xmlhttp=new XMLHttpRequest(); //创建对象
} else {
// IE6, IE5 浏览器执行代码
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","./ajax.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
<h3>在输入框中尝试输入字母 a:</h3>
<form action="">
输入姓名: <input type="text" id="txt1" onkeyup="showHint(this.value)" />
</form>
<p>提示信息: <span id="txtHint"></span></p>
</body>
</html>
上面的代码会完成以下的东西:
1. 在输入字母时会调用showHint()
2. showHint()创建对象
3. 定义onreadystatechange事件
4. xmlhttp.open()访问当前目录下的ajax.php来请求资源
ajax.php代码如下:
more...原文链接:http://drops.wooyun.org/tips/14312
一直在用mysql数据库报错注入方法,但为何会报错?

百度谷歌知乎了一番,发现大家都是把官网的结论发一下截图,然后执行sql语句证明一下结论,但是没有人去深入研究为什么rand不能和order by一起使用,也没彻底说明三者同时使用报错的原理。
more...AJAX全称是Asynchronous JavaScript and XML,即异步的JavaScript和XML
AJAX不是新的编程语言,而是一种使用现有标准的新方法。
AJAX可在不重新加载整个页面的情况下与服务器交换数据从而更新部分网页