flask
flask框架类型的题目,在最近几次的比赛中经常出现,但是每次出现都会让人苦不堪言,因为实在是不了解该类型的题目,所以有必要花时间总结一下该类型题目的套路
0x1 基础知识从Flask的模板引擎Jinja2入手,CTF中大多数也都是使用这种模板引擎
模板的基本语法官方文档对于模板的语法介绍如下
1234567{% ... %} for Statements{{ ... }} for Expressions to print to the template output{# ... #} for Comments not included in the template output# ... ## for Line Statements
常见的魔术方法
__class__
用于返回对象所属的类
1234567Python 3.7.8>>> ''.__class__<class 'str'>>>> ().__ ...
winter_homework
在家还是要学习
[CISCN2019 华北赛区 Day1 Web2]ikun进入题目,发现不简单,又在黑我kunkun
0x1 lv6看到第一个提示需要买到 lv6,但是第一页没发现Iv6,往后翻了几页还是没发现,不如写个脚本跑出来
12345678import requestsurl="http://6e7db183-764d-4afc-bdbb-b70791536e4a.node3.buuoj.cn/shop?page="for i in range(0,2000): r=requests.get(url+str(i)) if 'lv6.png' in r.text: print (i) break
lv6在181页,买的时候会发现,钱不够,但是可以抓包修改折扣,买完之后会重定向一次,但是此时会出现302,提示只有admin才能访问该页面
0x2 伪造admin我们知道网页身份确定一般都是基于cookie的,因此只需要伪造出admin登录时使用的cookie即可。
抓包可以看到,此题的cookie是 ...
sql_labs
寒假在家没事做,给自己找点事做,想来想去还是做一些漏洞实验吧
搭建好环境后就可以开始做题了
level1get提交参数id
首先提交1',判断是字符型还是数字型注入
这里出现报错,说明是字符类型的,并且是用'将参数id包裹起来的。
接下来就是判断列数,爆表名,爆列名和数据库内容
0x1 确定列数并爆出表名
当列数增加到4的时候开始报错,说明是三列
1?id=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()--+
0x2 爆列名1?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'--+
这里的列名很多
1user_id,first_name,last_name,user,password,ava ...
cumtfinal
web每做出来,还是太菜了,还是要多做题
Webez_jsF12在source中看到main.js,将其中的内容复制在控制台中运行,运行完后控制台会关闭,再次打开控制台,会看到一个
打开之后看到还是js代码,但是可以看到
在其中找到flag的其他部分,拼接起来即可
CryptoRSA签到没啥难的,就是找到解密的网站即可
几个网站如下
http://www.atoolbox.net/Tool.php?Id=937
https://www.qqxiuzi.cn/bianma/wenbenjiami.php?s=jiantou
https://www.qqxiuzi.cn/bianma/wenbenjiami.php?s=huaduo
1234567891011121314# n: 807862607863494903203347547751222668477246136996519972166847# c: 6525071913169990474785757170304035615411828876052879070297# e: 65537from Cryp ...
密码学
密码学实验课程设计
一、古典密码仿射密码简介仿射加密在本质上还是一个置换密码:如果说移位密码是一个常数级别的置换,那么,仿射加密是一个一次级别的置换
加密原理假设X,Y,A,B是Z26整数环中的元素,A和B为密钥,X是原文,Y是密文
加密函数:Y=(AX+B)%26
解密函数:Y=(AX+B)%26,得到:X=(A的逆元)*(Y-B)%26
原理很简单,代码实现也比较简单
代码实现各个函数作用
1234gcd(a,b) 求a,b的最大公因子findModReverse(a,m) 计算a模m的逆元encode(a,b,s) 仿射加密decode(a,b,s) 仿射解密
利用扩展的欧几里得算法求逆元
1234567891011121314def gcd(a,b): # 求出最大公因数 while a!=0: a,b = b%a,a return bdef findModReverse(a,m): #扩展欧几里得算法求模逆 if gcd(a,m)!=1: return None u1,u2,u3 = 1,0,a ...
adworld
为了完成网安作业必须多做点题,顺便写wp
Web_php_include利用php伪协议上传一段php代码后执行,列出目录看到flag文件
再利用本地文件包含读取flag
1http://220.249.52.133:46457/?page=http://127.0.0.1/index.php/?hello=%3C?show_source(%22fl4gisisish3r3.php%22);?%3E
warmup查看源码看到source.php,访问看到源码
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849<?php highlight_file(__FILE__); class emmm { public static function checkFile(&$page) { $whitelist = ["source&qu ...
rce
看到一个关于任意命令执行的视频后感觉很有意思,可以记录以下,以后可能会用到。
php中存在命令执行的常见函数1.system1234$last_line = system('ls', $return_var);system() 会将输出内容直接印出, 所以若于网页, 会将所有回传内容都显示于页面上.$last_line: 只能取得最后一行的内容$return_var: 取得系统状态回传码
2.shell_exec12$output = shell_exec('ls');$output: 回传内容都会存于此变数中(储存成纯文字内容), 不会直接秀在页面上.
3.exec123exec('ls', $output, $return_var);$output: 回传内容都会存于此变数中(储存成阵列), 不会直接秀在页面上.$return_var: 取得系统状态回传码
3.evaleval执行命令的原理与上面几个不同,eval 会把字符串作为PHP代码执行
例如
12345eval("phpinfo() ...
arp attack
arp攻击ARP(Address Resolution Protocol,地址解析协议是一个位于TCP/IP协议栈中的网络层,负责将某个IP地址解析成对应的MAC地址。
ARP 病毒攻击是局域网最常见的一种攻击方式。由于TCP/IP协议存在的一些漏洞给ARP病毒有进行欺骗攻击的机会,ARP利用TCP/IP协议的漏洞进行欺骗攻击,现已严重影响到人们正常上网和通信安全。当局域网内的计算机遭到ARP的攻击时,它就会持续地向局域网内所有的计算机及网络通信设备发送大量的ARP欺骗数据包,如果不及时处理,便会造成网络通道阻塞、网络设备的承载过重、网络的通讯质量不佳等情况。
攻击原理ARP攻击主要是通过伪造IP地址和MAC地址进行欺骗。使以太网数据包的源地址、目标地址和ARP通信数量剧增导致网络中断或中间人攻击。ARP攻击主要存在于局域网中。若其中一台计算机感染ARP病毒。就会试图通过ARP欺骗截获局域网内其他计算机的信息,造成局域网内的计算机通信故障。
实验机器2003虚拟机,作为ftp服务器
xp虚拟机作为用户访问ftp服务
kali作为攻击方,获取xp登录时的账号密码
xp:10.1.1. ...
UNCTF
比赛和考试时间有点冲突,也没有好好做题,只好结束复现一下。
easy_ssrf123456789101112131415<?phpecho'<center><strong>welc0me to 2020UNCTF!!</strong></center>';highlight_file(__FILE__);$url = $_GET['url'];if(preg_match('/unctf\.com/',$url)){ if(!preg_match('/php|file|zip|bzip|zlib|base|data/i',$url)){ $url=file_get_contents($url); echo($url); }else{ echo('error!!'); }}else{ echo(&qu ...
xss和sql注入简单环境的搭建
xss和sql注入简单环境的搭建以下环境都是基于PHP study搭建的,版本为 php 5.5.38+Apache
参考了dvwa的漏洞源码与攻击方式。
xss漏洞的搭建1.网页源码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263<!DOCTYPE html><html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <title>xss</title> </head> <body> <center> <form action="" meth ...