Clickjacking
具有 CSRF 令牌保护的基本点击劫持
这里存在一个删除账号的按钮 其中使用csrf进行了保护 这里需要我们去伪造页面欺骗用户点击这个删除按钮
我们先来看一下官方的payload
<style> iframe { position:relative; width:$width_value; height: $height_value; opacity: $opacity; z-index: 2; } div { position:absolute; top:$top_value; left:$side_value; z-index: 1; }</style><div>Test me</div><iframe src="YOUR-LAB-ID.web-security-academy.net/my-account">& ...
Business logic vulnerabilities
过度信任客户端控制
高级逻辑漏洞
不一致的安全控制
有缺陷的业务规则执行
尝试再次使用这个优惠券
SIGNUP30
尝试使用这个优惠券
当交替使用这两个优惠券时可行
低级逻辑缺陷
可以看到到达一定数量变成了负数 说明价格已经超过了后端语言的最大整数值
清空购物车
这次精准生成324个
接着将数量精准控制到32123
接着通过购买金额小的商品将 价格控制为正数
异常输入的不一致处理
尝试使用一个长 邮箱来注册
登录后发现我们的邮箱被截取了
长度刚好是255位
因此我们可以这样构造
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ...
Authentication
通过不同响应枚举用户名
尝试登录
添加这些用户名
更改用户名
2FA 简单旁路
使用 wiener登录
发现还存在 code
可以发现我们的邮箱地址
尝试用carlos登录
直接转入
/my-account
密码重置破坏逻辑
存在重置密码
我们这里尝试重置 wiener 的密码
发现发送了 一封邮件
尝试更改carlos的密码
通过细微不同的响应枚举用户名
排下序 发现问题
通过响应计时的用户名枚举
尝试登录
发现成功登录时 直接跳转
但是用户名错误时等待时间较长
密码错误时也一样
但是当尝试爆破时发现 禁止了ip
尝试添加xff头
在 Columns并选择Response received和Response completed选项
可以发现 这里的这个用户名明显 响应时间长一点
可见都是这一个
破解暴力保护,IP 封锁
发现 当连续登录错误三次就会锁定
但是每当成功登录之后就会重置次数
尝试将待选密码和peter进行混合
with open('passwd.txt ...
Access control vulnerabilities
不受保护的管理功能
/robots.txt
/administrator-panel
具有不可预测的 URL 的未受保护的管理功能
/admin-xr02aw
由请求参数控制的用户角色
修改 cookie
可以在用户配置文件中修改用户角色
在更新邮件的时候发现一个 roleid 我们尝试添加这个值
发现可行
请求参数控制用户ID
/my-account?id=carlos
请求参数控制用户ID,用户ID不可预测
可以看到 存在一个 id字段
尝试寻找carlos 的id
/my-account?id=f6027e85-b038-48a5-8b12-5487c871fdf8
用户ID受请求参数控制,重定向时数据泄露
/my-account?id=carlos
访问时会发生302重定向
但是访问的页面确实 carlos的页面
由请求参数控制的用户 ID,密码泄露
/my-account?id=wiener
/my-account?id=administrator
发现填充的 passwd
用得到的密码登录
不安全的直 ...
honeypot
pychram 打开项目 本地尝试
添加python 解释器
先安装几个包
pip install Django pymysql markdown geoip2
新建数据库 students
settings.py中添加好连接信息
迁移一下数据
python manage.py migrate
添加django服务器
尝试启动
成功访问
导出 requirements.txt
pip freeze > requirements.txt
dockeruname -a
剩下的操作全部都是在龙芯操作平台下完成的
yum search docker
yum install docker-ce -y
更改docker源
mkdir -p /etc/dockertee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": ["https://cr.loongnix.cn"]}EOFcat /et ...
osql&Intranet!
osql零过滤sql注入,也没有套娃 只不过数据库是oracl 其中简介是不要作弊意思 就是不要使用sqlmap去跑 这里就算你跑出来也是没有flag的 首先想教的就是拿到sql注入首先需要看看数据库类型 接着要去查看数据库版本 其次在id里有提示flag表里的内容是提示 所以不要说误导你 最后给的提示里面已经有答案了
从题目可以看到有sql注入 并且题目名字是osql 所以 数据库可以猜测是oracle
这里进行尝试发现确实是oracle数据库
看字段数 这里通过order by 可以发现 是3个字段
这里从username 的名字也可以发现这里表的结构是 sqllibs的数据库表
其实这里就是一个提示信息
这里尝试查看回显位 发现报错信息from关键字没有发现
直接查看sql官方语法
这里可以发现存在一个dual表, 当然这里如果你熟悉 sqllibs 的话会发现有一张users 的表 还有这里也可以知道有一张flag表,三个都可以去使用
尝试第一个dual 的时候发现存在数据类型不相同的问题
尝试flag发现表不存在
这里直接拿过来尝试 ...
博客搭建
前言并且本文除了 域名(可选) 腾讯云(一月一毛) 之外其他没有任何费用 也就是说完全可以做到零成本 选择腾讯云的原因是稳定 速度快 并且费用不高
其次一定要注意的是中文符号问题 还有 yaml 文件的格式问题 一定要严格配置 如果报错请严格对比与我的差异
如果某一步出现了问题你发现上面配置错误了,那么请你从当前一步重新开始向下配置,因为你不知道中间哪一步已经错误了
本文所有的资料全部放到了网盘上面了
集合.zip: https://url80.ctfile.com/f/38761380-665836264-f32813?p=5709 (访问密码: 5709)
链接:https://pan.baidu.com/s/1kS3BQTVb7y8pf7ZNde1clA?pwd=ahjr 提取码:ahjr
禁用中文标点符号搞半天 一个中文符号 找半天错 中文符号可能导致报错 所以我们直接禁用
要用中文符号的时候可以按 ctrl + . 启动
typora编辑器的安装https://www.ghxi.com/typora.html
下载bandzip
http://www.b ...
攻防世界(二)
攻防世界upload扫目录
有几个配置文件
里面也发现不了什么东西,只能回到register页面
注册一个登进去,发现是一个上传目录的地方
小传一个,回显名称,文件链接呢
说是注入漏洞,我们之间select database()发现只剩下databse() select被替换为了空,那么我们先fuzz一下
这里直接双写绕过过滤
猜测它直接将我们上传的文件存入了数据库那可能通过文件进行sql注入?类似insert into 表名(‘filename’,…) values(‘上传的文件名’,…);这样
构造’ select database() ‘.jpg上传结果被过滤了
猜测是select或空格被过滤都改掉:双写select,空格用“+”构造’+(selselectect database())+’.jpg返回0
CONV():进制的转换
CONV(N,from_base,to_base)select conv(16,10,16);+—————-+| conv(16,10,16) |+—————-+| 10 |+—————-+1 row in set (0.04 sec)
...
攻防世界(一)
利用linux目录结构特性引发的解析漏洞打开后获得源码开始审计
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>cetc7</title></head><body><?phpsession_start();#开始记录sessionif (!isset($_GET[page])) {#如果没有设置page的get参数就显示源码退出程序 show_source(__FILE__); die();}if (isset($_GET[page]) && $_GET[page] != 'index.php') {#如果设置了page参数并且get参数不等于index.php include('flag.php');#就包含flag.php}else { header( ...
XCTF
oh-my-noteprohttp://an:5002/
python sqlmap.py -u http://an:5002/view?note_id=47zoj6lpuyr984tutahobu6zltm78ey7 --batch --cookie="session=eyJjc3JmX3Rva2VuIjoiZDdmMTA1MzY5OTg4NWUxYzQ3NDM0NGU3OWQyMDk2ZjYxNjE3YjEyYyIsInVzZXJuYW1lIjoiMSJ9.YmQBnw.ddR6hBXgEOkN00pVhdGK3uVgxEo" --fresh-queries -D ctf --tables
http://an:5002/view?note_id=47zoj6lpuyr984tutahobu6zltm78ey7';-- + %0a create table wanan ( text VARCHAR(160) ); LOAD DATA LOCAL INFILE '/etc/passwd' INTO TABLE ctf.wanan ...