基于docker的sqli-labs搭建
一键代码:
curl https://files-cdn.cnblogs.com/files/kagari/sqli-labs.sh|bash
https://files-cdn.cnblogs.com/files/kagari/sqli-labs.sh
#!/bin/bash
apt-get update
apt-get -y install apt-transport-https ca-certificates curl software-properties-common git
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
apt-get -y update
apt-get -y install docker-ce
apt install -y git
echo '{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]}'> /etc/docker/daemon.json
service docker restart
git clone https://github.com/Audi-1/sqli-labs.git
echo RlJPTSB1YnVudHU6MTQuMDQKICAKUlVOIHNlZCAtaSAncy9hcmNoaXZlLnVidW50dS5jb20vbWlycm9ycy5hbGl5dW4uY29tL2cnIC9ldGMvYXB0L3NvdXJjZXMubGlzdCYmXAogICAgc2VkIC1pICdzL3NlY3VyaXR5LnVidW50dS5jb20vbWlycm9ycy5hbGl5dW4uY29tL2cnIC9ldGMvYXB0L3NvdXJjZXMubGlzdApSVU4gYXB0LWdldCB1cGRhdGUKUlVOIGFwdC1nZXQgaW5zdGFsbCAteSBhcGFjaGUyIHBocDUgbGliYXBhY2hlMi1tb2QtcGhwNSBwaHA1LW15c3FsIHBocDUtY3VybCBwaHA1LWdkIHBocDUtaWRuIHBocC1wZWFyIHBocDUtaW1hZ2ljayBwaHA1LWltYXAgcGhwNS1tY3J5cHQgcGhwNS1tZW1jYWNoZSBwaHA1LW1pbmcgcGhwNS1wcyBwaHA1LXBzcGVsbCBwaHA1LXJlY29kZSBwaHA1LXNubXAgcGhwNS1zcWxpdGUgcGhwNS10aWR5IHBocDUteG1scnBjIHBocDUteHNsIG15c3FsLXNlcnZlciB2aW0gY3VybAoKQ09QWSBzdGFydC5zaCAvcm9vdC9zdGFydC5zaApDT1BZIHNxbGktbGFicyAvdmFyL3d3dy9odG1sLwpSVU4gY2htb2QgK3ggL3Jvb3Qvc3RhcnQuc2gKClJVTiBjaG93biAtUiBteXNxbDpteXNxbCAvdmFyL2xpYi9teXNxbApSVU4gc2VydmljZSBhcGFjaGUyIHN0YXJ0JiZcCiAgICBmaW5kIC92YXIvbGliL215c3FsIC10eXBlIGYgLWV4ZWMgdG91Y2gge30gXDsgJiYgc2VydmljZSBteXNxbCBzdGFydCAmJlwKICAgIGN1cmwgaHR0cDovLzEyNy4wLjAuMS9zcWwtY29ubmVjdGlvbnMvc2V0dXAtZGIucGhwCgpFWFBPU0UgODAgMzMwNgpDTUQgWyIvcm9vdC9zdGFydC5zaCJd|base64 -d >dockerfile
echo IyEvYmluL2Jhc2gKCi9ldGMvaW5pdC5kL2FwYWNoZTIgcmVzdGFydApmaW5kIC92YXIvbGliL215c3FsIC10eXBlIGYgLWV4ZWMgdG91Y2gge30gXDsgJiYgc2VydmljZSBteXNxbCBzdGFydCAKL2Jpbi9iYXNo|base64 -d>start.sh
docker build -t sqli-labs .
docker run -itdp : sqli-labs
详细步骤:
1.下载sqli-labs源码 https://github.com/Audi-1/sqli-labs
git clone https://github.com/Audi-1/sqli-labs.git
2.编写dockerfile
FROM ubuntu:14.04
#换源,推荐阿里源(mirrors.aliyun.com),腾讯源(mirrors.cloud.tencent.com),163源 (mirrors.163.com)
RUN sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list&&\ sed -i 's/security.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
#安装apahce,php,mysql及php相关扩展
RUN apt-get update
RUN apt-get install -y apache2 php5 libapache2-mod-php5 php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl mysql-server vim curl COPY start.sh /root/start.sh
COPY sqli-labs /var/www/html/
RUN chmod +x /root/start.sh RUN chown -R mysql:mysql /var/lib/mysql
RUN service apache2 start&&\
find /var/lib/mysql -type f -exec touch {} \; && service mysql start &&\
curl http://127.0.0.1/sql-connections/setup-db.php EXPOSE 80 3306
CMD ["/root/start.sh"]
3.编写start.sh
#!/bin/bash /etc/init.d/apache2 restart
find /var/lib/mysql -type f -exec touch {} \; && service mysql start
/bin/bash
使用find /var/lib/mysql -type f -exec touch {} \; && service mysql start
4.构建docker容器,并运行
docker build -t sqli-labs . //构筑 docker run -itdp : sqli-labs //-it指定镜像 -d后台运行 -p映射端口
5.访问127.0.0.1:8000即可
基本情况:
mysql用户:root/空
secure_file_priv=
上述两点,如需配置,请使用以下配置
首先修改 sqli-labs/sql-connections/db-creds.inc为下
<?php
//give your mysql connection username n password
$dbuser ='user';
$dbpass ='user';
$dbname ="security";
$host = 'localhost';
$dbname1 = "challenges";
?>
dockerfile
FROM ubuntu:14.04 RUN sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list&&\
sed -i 's/security.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y apache2 php5 libapache2-mod-php5 php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl mysql-server vim curl COPY start.sh /root/start.sh
COPY sqli-labs /var/www/html/
COPY flag.sql /root/flag.sql
RUN chmod +x /root/start.sh RUN chown -R mysql:mysql /var/lib/mysql&&\
#修改secure_file_priv
sed -i "N;32a\secure_file_priv=/var/www/html" /etc/mysql/my.cnf&&\
find /var/lib/mysql -type f -exec touch {} \; && service mysql start &&\
#修改root密码,安装,新建mysql用户,降权
mysqladmin -uroot password kagi&&\
mysql -uroot -pkagi -e "CREATE USER 'user'@'localhost' IDENTIFIED BY 'user';"&&\
mysql -uroot -pkagi -e "grant ALL on *.* to user@'localhost' identified by 'user';"&&\
mysql -uroot -pkagi -e "flush privileges;"&&\
sed -i '$a\ServerName 127.0.0.1' /etc/apache2/apache2.conf&&service apache2 restart&&\
curl http://127.0.0.1/sql-connections/setup-db.php&&\
mysql -uroot -pkagi -e "revoke all privileges on *.* from user@localhost;"&&\
mysql -uroot -pkagi -e "grant SELECT, INSERT, UPDATE, DELETE ,FIlE on *.* to user@'localhost' identified by 'user';"&&\
mysql -uroot -pkagi -e "flush privileges;"&&\
mysql -uroot -pkagi -e "create database flag;"&&\
mysql -uroot -pkagi flag < /root/flag.sql
#web目录默认为root:root 755,新建可以目录,用于写webshell
RUN mkdir /var/www/html/tmp &&chmod 777 /var/www/html/tmp
EXPOSE 80 3306
CMD ["/root/start.sh"]
start.sh
#!/bin/bash /etc/init.d/apache2 restart
find /var/lib/mysql -type f -exec touch {} \; && service mysql start
/bin/bash
flag.sql
-- phpMyAdmin SQL Dump
-- version 4.8.5
-- https://www.phpmyadmin.net/
--
-- 主机: 127.0.0.1:3306
-- 生成日期: 2019-11-25 05:27:06
-- 服务器版本: 5.7.26
-- PHP 版本: 5.6.40 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */; --
-- 数据库: `flag`
-- -- -------------------------------------------------------- --
-- 表的结构 `flag`
-- DROP TABLE IF EXISTS `flag`;
CREATE TABLE IF NOT EXISTS `flag` (
`id` int(11) NOT NULL,
`flag` varchar(100) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8; --
-- 转存表中的数据 `flag`
-- INSERT INTO `flag` (`id`, `flag`) VALUES
(1, 'flag{sqli_easy}');
COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
基于docker的sqli-labs搭建的更多相关文章
- Ubuntu 基于Docker的TensorFlow 环境搭建
基于Docker的TensorFlow 环境搭建 基于(ubuntu 16.04LTS/ubuntu 14.04LTS) 一.docker环境安装 1)更新.安装依赖包 sudo apt-get up ...
- EOS Dapp开发(1)-基于Docker的开发环境搭建
随着EOS主网的上线,相信基于EOS的Dapp开发会越来越多,查阅了很多资料相关的开发资料都不是很多,只能自己摸索,按照网上仅有的几篇教程,先git clonehttps://github.com/E ...
- 基于Docker的Mysql主从复制搭建
来源:https://www.cnblogs.com/songwenjie/p/9371422.html?tdsourcetag=s_pctim_aiomsg 为什么基于Docker搭建? 资源有 ...
- 基于Docker在Win10平台搭建Ruby on Rails 6.0框架开发环境
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_170 2020年,"非著名Web框架"–Ruby on Rails已经15岁了.在今年,Rails 6.0趋于 ...
- Linux Centos7 环境基于Docker部署Zookeeper服务搭建实战
配置Zookeeper安装目录 在宿主机配置zookeeper安装目录:/docker/develop/zookeeper 并且在文件夹创建 data 和logs 目录: mkdir -p /dock ...
- 基于 Docker 的 MySQL 主从复制搭建
出处:https://www.jianshu.com/p/ab20e835a73f
- 基于docker的 Hyperledger Fabric 多机环境搭建(上)
环境:ubuntu 16.04 Docker 17.04.0-ce go 1.7.4 consoul v0.8.0.4 ======================================= ...
- 基于Docker的服务器搭建
-----------基于Docker的多种服务器搭建----------- 开发环境 本机上的虚拟机 Centos7.4 Docker1.13.1 Openssl1.1.1 1 Nginx 1.1 ...
- 十大基于Docker的开发工具
http://www.infoq.com/cn/news/2014/08/top-10-open-source-docker FlynnFlynn是一个使用Go语言编写的开源PaaS平台,Flynn使 ...
- 基于Docker的Mysql主从复制
基于Docker的Mysql主从复制搭建 为什么基于Docker搭建? 资源有限 虚拟机搭建对机器配置有要求,并且安装mysql步骤繁琐 一台机器上可以运行多个Docker容器 Docker容器之间相 ...
随机推荐
- 5.创建执行线程的方式之三 :实现Callable 接口
Callable 接口 一.Java 5.0 在 java.util.concurrent 提供了 一个新的创建执行线程的方式(之前有继承Thread 和 实现Runnable):Callable 接 ...
- flume 1.7在windows下的安装部署与测试运行
一.安装 安装java,配置环境变量. 安装flume,下载地址,下载后直接解压即可. 二.运行 创建配置文件:在解压后的文件 apache-flume-1.7.0-bin\conf下创建一个exam ...
- Java Socket编程----网络基础
详见:https://www.cnblogs.com/rocomp/p/4790340.html Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而 ...
- Codeforces 853A Planning
题意 给出飞机单位晚点时间代价和原定起飞时间,现在前k分钟不能起飞,求付出的最小代价和起飞顺序 思路 构造两个优先队列q1,q2,q1按时间顺序,q2按代价顺序,初始将所有飞机入q1,将时间在k前的飞 ...
- Django权限和认证模块的解读
from rest_framework.views import APIView 找到APIView中的dispatch方法 class MyAuth: def authenticate(self): ...
- Server SAN
http://blog.sina.com.cn/s/blog_5946bd590102veni.html http://blog.sina.com.cn/s/blog_5946bd590102vemm ...
- Go语言——概念
静态类型.动态类型.潜在类型 静态类型:指在变量声明中示出的那个类型.绝大多数类型都只有静态类型.唯独接口类型的变量例外,他除了拥有静态类型之外,还拥有动态类型. 动态类型:指在运行时与该变量绑定在一 ...
- 三星Q470c Logo界面无限掉电重启,变砖后的挽救过程
背景 三星笔记本的部分型号如:NP530 Q470等 安装win8后再次重装系统(我弄了个Ubuntu18)会导致无法进入BIOS菜单页面的问题.启动显示logo页面后,能够听到明显啪的一声(硬盘掉电 ...
- linux getpid _getpid()
getpid是一种函数,功能是取得进程识别码,许多程序利用取到的此值来建立临时文件,以避免临时文件相同带来的问题. 函数功能:取得进程识别码 相关函数:fork,kill,getpid 头文件:旧版本 ...
- unity 拿到管线权限的解决方案
自己建个cmd 传给postprocess layer camera event可以加在这个cmd上控制位置 base pass post process ui都共享这段cmd 在一开始记下back ...