本文共 2429 字,大约阅读时间需要 8 分钟。
文章目录
前言
这次就是靶场系列的最后一篇了,这段时间学习这个系列的知识,感觉确实学到很多东西。现在做一下总结吧。
一、综合环境——低难度
tip:emmm,与之前重复的内容这里就不再提了,主要记录下思路。
使用nikto和dirb等工具探测过后,发现了以下敏感页
login.phpindex.phpconfig.php
其中login.php是个登录页面。没有信息,先查看源码(其实我先尝试了弱口令,但是没有成功,还是乖乖的看源码) 在源码的最后发现了javascript的代码
function control(){ var user = document.getElementById("user").value; var pwd = document.getElementById("pwd").value; var str=user.substring(user.lastIndexOf("@")+1,user.length); if((pwd == "'")){ alert("Hack Denemesi !!!"); } else if (str!="btrisk.com"){ alert("Yanlis Kullanici Bilgisi Denemektesiniz"); } else{ document.loginform.submit(); }}
审计这段代码:substring和lastIndexOf都是截取字符串的两个函数,首先来了解一下这两个函数。 substring()
注意:如果start传入的参数比stop的参数大的话,该函数会自动调换start和stop的位置。参数 start 与 stop 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。 下面是一个栗子:
string start = null; string stop = null; string str = "abcdefg"; start = str.Substring(0, 1);//从第一个开始截取,共截取一位 stop = str.Substring(str.Length - 1, 1);//从最后一个开始截取,共截取一位 Response.Write(qian + "***" + hou);
输出结果:a***g
lastIndexOf()
作用:可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索 注意:lastIndexOf()
方法对大小写敏感! 如果要检索的字符串值没有出现,则该方法返回 -1。
string str = "m0re";str = str.Substring(0, str.LastIndexOf("r"));Response.Write(str);
截取r前面的字符串,输出为m0
OK,这下再看代码就可以理解了。 1、首先lastIndexOf()
先在user中查询@
的位置,然后从其位置的后一位开始,到user的总长度这个范围内,substring函数起作用,截取字符串str。 2、继续,pwd不等于'
,猜测可能是防万能密码的吧。或者是绕过SQL注入。 3、str要等于btrisk.com 然后进来一个页面,闹了半天没发现什么,最后才知道是姿势错了。不过也没白折腾。有学到新知识。 正确的姿势: 对登录框进行fuzz测试,kali的wordlists下有字典,可以直接利用,抓包发送到 Intruder模块 载入字典进行fuzz测试 直接测试成功,看到response页面有内容,去字典中找到这个payload进行登录。 用户名:@btrisk.com
密码:' or 1=1#
%00
截断绕过。 只需要简单的修改后缀就可以了,其他的验证就没有了。 尝试可以进行绕过,就制作一个反弹shell,然后监听获取权限就OK了。 重复步骤。 然后得到一个www-data用户的权限,尝试提权,发现sudo -l
返回的是 sudo: unable to resolve host BTRsys1sudo: no tty present and no askpass program specified
没见过这样的,先放在一边。但是可以查看配置文件,之前扫描出来一个config.php
,但是访问没有任何信息,这里可以cat一下源码。
数据库root用户的密码是toor
连接数据库前,先优化一下终端,因为数据库输入密码时,是读取键盘记录的,而shell是无法完成的,所以还是先进行优化一下终端。 然后进入数据库,进行遍历,查看到用户名密码,尝试提权su - root
使用密码asd123***
二、综合环境——较高难度
这个其他没什么可记录的,就一点——内核提权
searchsploit ubuntu 4.4.0复制到桌面进行编译,
root@kali:~/Desktop# gcc 41458.c -o rootshellroot@kali:~/Desktop# ls41458.c rootshell
然后利用meterpreter的upload命令将rootshell上传并加权,进行chmod命令时,需要在反弹shell中执行, 赋予rootshell以777权限后执行文件就可以提权成功了。
./rootshell
总结
涉及知识点:代码审计、fuzz测试、万能密码、文件上传、弱口令、内核提权CTF靶场系列就算完工了,还要继续努力鸭。
转载地址:https://blog.csdn.net/qq_45836474/article/details/108091321 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!