文件上传靶场6-10
pass-6同样通过源码分析,这里过滤掉了许多后缀,包括.htaccess .ini等等,需要另想办法
$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 = str_ireplace('::$DATA', '', $file_ext) ...
博客搬家
前言介于word press实在是漏洞太多,我决定还是换个框架,选择了hexo框架,起因是看到国光师傅的博客有点好看,于是就有了搬家这个念头,记录一下自己的踩坑以及解决办法。
本地搭建Git是目前世界上最先进的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。也就是用来管理你的hexo博客文章,上传到GitHub的工具。Git非常强大,我觉得建议每个人都去了解一下。
Hexo是基于nodeJS编写的,所以需要安装一下nodeJs和里面的npm工具。
我的操作系统是Windows X64 如果你是linux或者mac,请参考hexo官方文档:https://hexo.io/zh-cn/docs/
安装git我电脑是Windows系统,那么直接就下载安装就可以了。链接:https://git-scm.com/download/win 下载下来后会有这么多东西,主要我们会用到Git Bash 因为iWindows自带的cmd不太好使
安装 Node.js选择LTS版本下载安装即可,https://nodejs.org/en/download/ 下载安装好后会有下面的东西
都下载好后打开Git Bash检查一下是否安装完成
git --version
node -v
npm -v
安装hexo框架我是新建了一个hexo文件夹,然后作为我们的工作目录,进入到这个目录下打开Git Bash
npm install -g hexo-cli
hexo -v查看一下版本
搭建博客架构初始化hexo
hexo init myblog //myblog取什么名字都可以
初始化完成后,进入这个myblog
npm install
现在我们的简单的一个hexo就搭建好了,然后还是Git Bash中进行运行服务
hexo g
hexo serv ...
暗泉杯CTFwp(2021.12)
前言写在前面,本篇wp只写出我所做的以及我感兴趣,主要涉及web以及misc,欢迎大家来观看以及提疑
WEB签到flagflag{nss_login}
0x00 解法一
人肉排序,然后排好后base64解密即可
0x01 解法二
其实我还是感觉解法一更快也更直接。
解法二就是当网站输出足够多时,复制到文本编译器,然后替换成下方的格式a = list(“a” * 20)
a = list("a" * 20)
···
a[1]="a"
a[20]="b"
a[3]="c"
···
然后最后base64解密即可
odd_upload题目给出了一个上传点,并且页面中给出了一些关于模板的提示,关于模板我先不过多查看。我直接尝试一下能不能通过简单的方法进行绕过后缀上传shell上去,毕竟是萌新题目,尝试了一下发现全部失败,那么这种话方法还是行不通了,后端应该使用了严格的后缀黑名单防止上传php或Apache配置文件.
那么再回来观察给出的提示,给出的是关于模板的提示,并且题目中说到跟网站结构跟test页面给出的结构一样,想想这是啥结构,很容易发现题目使用了smarty模板引擎的demo项目
之前看到的一篇文章关于smarty模板注入的十分相似,关于smarty模板注入的知识,文章最后面的链接可以去看看。是基于php开发的,同时这个smarty模板中会存在一个.tpl模板文件,我们尝试上传一下.tpl模板文件,看是否被过滤后缀
随机上传一个文件抓包,将数据包通过smarty模板注入的方法修改一下,对模板文件.tpl进行覆盖,控制模板内容
POST /? HTTP/1.1
Host: aefbb26c-0fbb-41d5-b2a6-d1 ...
First do CTFHUB
这篇文章主要是介绍我在解CTFHUB时候所学,随手记录一下。现在回头来看这篇文章,真的是再基础不过的题
ctfhub:https://www.ctfhub.com/
请求方式这里考到了一个GET请求换的技巧 由于之前没经历过这么改,很懵逼 所以很尴尬的搜了一下,泪目了。
就是一个简单的数据包请求头修改,GET改为CTFHUB
放包即可拿flag
重定向学到了新东西,重定向我没学过,所以这题我也不会,总的来说就是你需要找到重定向那个页面,然后用cmd进行访问,burpsuite抓包感觉也可以,但是没试过。
cookie伪造救命,终于遇到我会的了,这个就是一个简单的bp抓包然后将cookie修改为admin 不过好像只要不是0就可以,还是比较简单的
然后bp抓波修改cookie不为0即可
身份认证这一关可真是被bp的英文界面给卡住了,找不到编码,找不到payload的添加,乱七八糟的,还是bp用的太少了。直接进入正题。
直接是让我们登录,前面已经告诉我们名字是admin,并且给了我们一个字典,很典型的爆破,不多说。bp输入admin;admin抓包,看到那一串编码,结尾是=直接bsae64试试
这个工具还不错,网上找的。
哦吼,这不是我们输入的东西嘛,那思路就清晰了。直接intruder爆破,选上那个狙击手,忘了截图,反正就是那个选择一个字符串的那个,导入下载的字典,
加上这个 Add Prefix 意思是前面的字符,只爆破后面的 然后下一步,前面验证过了base64对用户民和密码进行编码,所以记得选上base64编码,哦对了 下面url记得关了,不然=会被转换成%3d
开始爆破就可以了,然后跑完字典看到有一行不一样的,打开看一下 flag出来了。
只能说菜的扣脚,继续加油。
相应包源代码简单,直接右键查看元素,找到flag即可
ctfhu ...
向日葵CNVD-2-22-10270rce复现
原文章:http://plumstar.cn/2022/02/21/xiang-ri-kui/
前言这次的漏洞是2022年春节过后爆出的命令执行漏洞,向日葵官方也在漏洞公布后第一时间进行了处理,目前也有了更新版本。
向日葵远程控制是一款提供远程控制服务的软件。其支持主流操作系统Windows、Linux、Mac、Android、iOS跨平台协同操作,在任何可连入互联网的地点,都可以轻松访问和控制安装了向日葵远程控制客户端的设备。整个远控过程,可通过浏览器直接进行,无需再安装软件。
影响版本向日葵个人版for Windows <= 11.0.0.33
向日葵简约版 <= V1.0.1.43315 (2021.12)
漏洞复现环境这里向日葵的版本我用的是SunloginClient_10.3.0.27372,下载地址:https://msoft.win10com.com/202005/SunloginClient_10.3.0.27372.zip
检测与利用工具:https://github.com/Mr-xn/sunlogin_rce/releases/tag/new
这款工具是go写的,奈何水平有限,只会利用看不懂,大家感兴趣的可以看一眼灰鸽子的这篇文章:http://www.hgzvip.net/hot-information/2034.html
工具的使用方式在README文件中写的比较清楚了,下面直接复现即可
复现本地直接安装打开向日葵,不需要做任何操作,打开即可
-h 指定扫描目标,-t 选择扫描或者命令执行 默认scan 这里ip地址就是我本地了
xrkRce.exe -h ip地址 -t scan
这里发现了60866端口可能存在rce端口,直接执行whoami命令尝试一下
xrkRce.exe -h ip地址 -t ...
kali常用命令
前言由于自己一个寒假没碰kali, 开学kali命令全忘了这件事,所以整理一下三位师傅的文章,熟能生巧,大家平时还是要多敲命令
https://blog.csdn.net/qq_44171009/article/details/104617579
https://blog.csdn.net/qq_44902875/article/details/104143557
https://www.cnblogs.com/wbly2019/p/10730298.html
软件安装、升级的几个命令安装软件包
apt-get install [package_name]
更新,每次安装新软件包、升级操作系统、应用程序都需要进行检查
apt-get update
升级,先执行跟新后再执行下面命令,针对软件
apt-get upgrade
版本升级,如kali版本2.0升级到2.n
apt-get dist-upgrade
移除,删除所有非必须的软件包
apt-get remove [package_name]
自动移除,旧的软件包会被新的替代,会自动删除不必要的软件包
apt-get autoremove
完全移除,和移除的区别是会删除配置文件(慎重)
apt-get purge [package_name]
8.清理,清理已经安装过的安装软件包文件
apt-get clean
自动清理,在版本过度的时候,会清理掉旧版,而清理则是都会被清理
apt-get autoclean
压缩包相关命令使用tar压缩,压缩当前目录下的所有文件,c表示创建新存档文件,f指定压缩名,*表示所有文件都加入,t表示列出.tar中的内容
mkdir tar_text
echo “Hellow World” > tar_text/text1 #把Hellow World写进te ...
页脚信息插入以及合理美化
引子在我进行博客的开发的时候,在网站备案成功之后,不可避免的就是在页脚上添加我们的备案信息,那么问题就来了,加上备案信息和一些小功能,作为一个小白的我,该如何去做呢
添加备案信息0x01 常规之前也接触过HTML的标签的一些知识,那么自然而然就想到了最简单的标签
<iframe frameborder="0" scrolling="no" style="width: 0%;height:0px;"></iframe>
<center style="padding: 0;margin:0;list-style: none">
<br><a href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=168xxxxxxx">粤ICP备168xxxxxxx号</a>
</center>
就像这样
大家可以看到明显上面多出了很多空白的地方,很不好看。那么把上方的限制条件全删了看一下,发现正常显示了,当我在下方语句前面加上<br>标签时,就会留空,也就是会缩进一些字符,导致上下不对称
<a href="http://www.miibeian.gov.cn" target="_blank">鲁ICP备2021045898号</a>
0x02 其他方法这里也可以用<div>这个标签来进行页脚的添加,这是solstice23师傅的方法,拿来借用一下还是可以的,效果也很不错
<div><a href="https://beian.miit.gov.cn" target="_blank"><strong>鲁ICP备2021045898号</strong></a><?ph ...
dvwa_setup.php页面代码审计
前言接上一篇login.php页面的审计,这次审计的是数据库检测页面setup.php 在我们第一次使用dvwa时,便会触发这个页面显示数据库相关信息以及
感觉这个页面php代码还是相对较少的,简单审计一下,下一篇应该会去审计MySQL.php页面,有一些是跟login.php页面相同的代码片段,这里就不再重复
0x01#对页面进行一些基础的设置,例如title,page.id等
$page = dvwaPageNewGrab();
$page[ 'title' ] = 'Setup' . $page[ 'title_separator' ].$page[ 'title' ];
$page[ 'page_id' ] = 'setup';
0x02#数据库操作
if( $DBMS == 'MySQL' ) {
include_once DVWA_WEB_PAGE_TO_ROOT . 'dvwa/includes/DBMS/MySQL.php';//数据库为MySQL时,跳转到MySQL.php文件
}
elseif($DBMS == 'PGSQL') {
// include_once DVWA_WEB_PAGE_TO_ROOT . 'dvwa/includes/DBMS/PGSQL.php';
dvwaMessagePush( 'PostgreSQL is not yet fully supported.' );//数据库为PGSQL时,返回PostgreSQL is not yet fully supported信息
dvwaPageReload();
}
else {
dvwaMessagePush( 'ERROR: Invalid database selected. Plea ...
dvwa_login.php页面代码审计
前言最近在上课的时候用到了dvwa这个靶场,老师讲SQL注入时穿插讲了一下登录页面跟数据库的交互,之前也对这个靶场源码感兴趣,所以今天就来审一审代码,先从最简单的登录页面login.php开始,
因为我是自己审,完全没有经验,也没学过php,如果有错误各位师傅一定要指出来,万分感谢,是一个简单的登录界面,挑出一些重点来审一下,最重点的当然是跟MySQL的交互
dvwa GitHub地址:https://github.com/digininja/DVWA
原文章:http://plumstar.cn/2022/03/18/dvwa-deng-lu-ye-mian-dai-ma-shen-ji/
检测session信息代码利用array_key_exists检测是否有session信息,若有则将获取的session传给$session_token变量,若为其他情况,则$_session_token传入为空
if( isset( $_POST[ 'Login' ] ) ) {//检测传入的Login是否已经设置并且非null
// Anti-CSRF,写的已经很清楚了,检测session,抗CSRF攻击
if (array_key_exists ("session_token", $_SESSION)) {
$session_token = $_SESSION[ 'session_token' ];
} else {
$session_token = "";
}
checkToken( $_REQUEST[ 'user_token' ], $session_token, 'login.php' );
这一端是10-18行,检查session信息,抗CSRF攻击;array_key_exists函数用来 检查数 ...
宽字节注入
0x01前言原文章:http://plumstar.cn/2022/03/24/sql-zhu-ru-kuan-zi-jie-zhu-ru/
前期在学习SQL注入的时候没有涉及到宽字节注入,被问到了,很尴尬不会,所以浅学习一下宽字节注入
参考:http://wyb0.com/posts/2016/injection-of-wide-byte/
0x02漏洞起因宽字节注入主要源于程序员设置数据库编码与php编码设置为不同的两种编码,那么就可能产生宽字节注入,
注入时通常会使用单引号、双引号等特殊字符。在应用中,通常为了安全,开发者会开启php的magic_quotes_gpc,或者使用addslashes、mysql_real_escape_string等函数对客户端传入的参数进行过滤,则注入的单引号或双引号就会被"\"转义,但是,如果服务端的数据库使用的是GB2312、GBK、GB18030等宽字节的编码时
eg:PHP编码为UTF-8而Mysql的编码设置为set names ‘gbk’或是set character_set_client=gbk,这样配置会引发编码转换从而导致的注入漏洞(一个gbk编码汉字,占用2个字节,一个utf-8编码的汉字,占用3个字节)
0x03漏洞简单测试从wyb位师傅哪里找了一段测试代码,用来测试宽字节注入
<?php
$conn = mysql_connect('127.0.0.1','root','root');
mysql_select_db('pikachu',$conn);//pikachu需要换成你本地的数据库
if (isset($_GET['id'])) {
$id = addslashes($_GET['id']); //转义id,add ...