某安全团队内部渗透比赛-WriteUp

释放双眼,带上耳机,听听看~!

(个人赛)
第一节:
title:进入192.168.1.6 获取秘匙。

ps: http://www.liuyan.com 跟 192.168.1.6是工作区

规程:渗透过程不得使用nmap等扫描端口工具,更加不能使用WEB扫描器。(只要有关于爬虫都不行 or 扫描owasp top 10 appsan wvs burp)除非工具是你个人写的。 更加不可以作弊:比如 ip冲突,中间人攻击。请保持好个人素质。特别注意:全过程中不得求助增援,只能靠个人实力,为了防止作弊全过程需要屏幕录像。

打开 http://192.168.1.6 提示没权限访问。。。
估计做了白名单验证。。。
然而:http://www.liuyan.com 是可以访问的。
简单收集下信息:
http://www.liuyan.com [200] Apache[2.4.7], Country[RESERVED][ZZ], HTTPServer[Ubuntu Linux][Apache/2.4.7 (Ubuntu)], IP[192.168.1.7], Index-Of, Title[Index of /]

提示说:密码 4位int密码。

我一开始想到了密码爆破 至于验证码嘛 肯定是存在session没更新导致验证码复用的漏洞,但是经过测试发现这个漏洞不存在。
所以唯一的办法就是写验证码识别。。

分析一下验证码的 锚点 跟 干扰线,以及模糊度 等。


经过分析如果要让程序识别这种验证码等话成功率大概有90%。


[Bash shell] 纯文本查看 复制代码
密码 1115

然后进入到这个页面:

一直想不明白这是干嘛的。单引号也没报错。然后经用掉js。。


然后看到了这个:

应该是输出字符串之后就跳转了 导致看不到这个信息,再想他给我提示这个干啥?难到sql注入?
看到了单引号被转义只能把注意力放到后台那边:

爆破了好久都没结果。。浪费了一堆时间,收集了出题官的手机啥的爆破都没结果。。

虽然单引号被转义了。但我突然又想到了宽字节注入。。。

 
果然。。。。。得到数据库:hacker
浏览器好麻烦。。想用burp但是又不能用。。
本来想爆数据库密码的 但是mysql没有开启外链

也考虑到数据库密码可能还解不开。
先进后台看看吧。
暴表:
select table_name from information_schema.tables where table_schema=database()

insert into liuyan values (‘運’ , (select table_name from information_schema.tables where table_schema=database() limit 0,1))##’ , ‘e’)

 

暴字段:
insert into liuyan values (‘運’ , (selEct GrouP_coNCat(COLUMN_NAME) fRom information_schEma.COLUMNS where TABLE_NAME=0x61646d696e limit 0,1))##’ , ‘e’)

65
数据库 hacker
表:liuyan , admin
admin字段:user,pass

暴数据:
selEct GrouP_coNCat(user,0x2D002D00,pass) fRom admin as ww limit 0,1

insert into liuyan values (‘運’ , (selEct GrouP_coNCat(user,0x2D002D00,pass) fRom admin limit 0,1))##’ , ‘e’)

其实我很想用sqlmap进行注入 因为上面的规则没有说不能用sqlmap 但是sqlmap好像不支持values注入,注入的时候居然检测不出来。

然后我问了一个大神。

然后登录后台:密码错误??这里我抽根烟花了10分钟在想原理(因为我整个数据库都翻遍了)
然后查看源码。。。

还好 我懂js。。。不然就永远卡在这了。。
一个点击事件触发一个函数然后你的cookie名称tem的值不等于hacker的话 那么就输出一句话 然后false 不再执行。
然后我禁用掉了js 进行登录发现还是登录不了。。难不成也在后台做限制了?好吧。还是老老实实的定义cookie 吧。登录之后是个上传。不过需要提供上传路径。

获取上传路径有2种方法。
第一种 因为存在sql注入 所以把那个留言的数据全部删掉,看看报不报错,因为我发现好多程序员在前端输出数据的时候根本不判断数据是否为空就直接遍历了。

第二种 因为存在sql注入 所以读取服务器配置文件查看路径 当然如果默认路径没改的话。
ubuntu apache 的配置文件路径 /etc/apache2/apache2.conf

selEct load_file(0x2f6574632f617061636865322f617061636865322e636f6e6620)

经过测试 是黑名单验证
然后利用 .htaccess 上传

新建个 .htaccess文件内容:
<Files *.jpg>
ForceType application/x-httpd-php
SetHandler application/x-httpd-php
</Files>

在他当前目录下 只要是以jpg结尾的 都会以PHP程序去解析

mac os x 渗透好麻烦,因为没环境。。。。挖漏洞还可以。。哎。这工具卡在这了,平时都能用的,今天换了jpg就卡这了。希望看到的反馈bug给这个作者。。然后新建一个看看。

这权限好像有点不科学。不知道是不是出题官故意的。。。

下载个nc 进行转发

很多人都不知道为什么要用nc转发,难到用菜刀来执行命令不是方便点嘛?
这点我得说一下虚拟化的执行命令的区别。就比如:

看到区别在哪了吧?

前面我推断192.168.1.6 应该做了白名单 所以我的思路是想通过这个肉鸡来代理进行访问然后再渗透。
然后肉鸡上的Socks 已经安装成功

但是我自己的mac os x却安装失败

上kali吧 kali就是ubuntu….
哈哈 开心死了。居然跟我想的一样。。
http://192.168.1.6/admin.php 应该是后台登录。
http://192.168.1.6/register.php 这是注册的。。。这里我花了整整差不多30分钟才搞定。
你想啊。他就给你一个登录一个注册,然后提示管理员的账号是admin。
然后我又想到了我以前看过一本书 就是白帽子讲解web安全。。

这个是my.ini的漏洞。

sql-mode=”NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”

我还是说一下原理吧。。。。

比如一个表的结构是这样的:

create table admin(
username varchar(10) not null,
passwd varchar(10) not null);

可以看到username跟passwd的字节为10 但是这my.ini设置成
sql-mode=”NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”的话
就算超出也会添加成功 比如:
insert into admin values(‘1234567891 2’,and);

他不会插入“1234567891 2 ”而是插 ”1234567891“ 因为指针到1的时候字节就等于10了。。。

最后得到密钥:[email protected]#dmejfn^&*!

WEB安全质量好文

MySQL注射绕过技巧(三)

2020-4-8 22:50:09

WEB安全安全工具质量好文

用 C# 开发的漏洞监控工具

2020-4-9 13:35:37

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
有新私信 私信列表
搜索