1、通关yakit验签与数据加密
yakit靶场签名验证

加密部分关键代码
function generateKey() { return CryptoJS.enc.Utf8.parse("1234123412341234") }
function Encrypt(word) { console.info(word); return CryptoJS.HmacSHA256(word, key.toString(CryptoJS.enc.Utf8)).toString(); }
|
yakit热加载代码
func sign(user, pass) { return codec.EncodeToHex(codec.HmacSha256("1234123412341234", f`username=${user}&password=${pass}`)~) }
signRequest = result => { pairs := result.SplitN("|", 2) dump(pairs) return sign(pairs[0], pairs[1]) }
|
调用方式
{{yak(signRequest|admin|123)}}
|

调用测试,热加载可正常使用

结合模糊测试字典

签名验证

yakit靶场数据加密
加密关键代码
function generateKey() { return CryptoJS.enc.Utf8.parse("1234123412341234"); }
const key = generateKey();
function Encrypt(word) { console.info(word); return CryptoJS.AES.encrypt(word, key, {iv: iv}).toString(); }
|
热加载部分代码
aescbc = result => { result = codec.AESCBCEncryptWithPKCS7Padding( codec.DecodeHex(`31323334313233343132333431323334`)~, result, codec.DecodeHex(`fc8d6ce962b937f9258f95a84725e567`)~, )~ return string(result) }
|
调试方式
{{base64({{yak(aescbc|{"username":"admin","password":"123"})}})}}
|
调用测试,热加载可正常使用

结合模糊测试字典,进行爆破

2、尝试修改响应报文的数据,自选网站

目标:中国民航大学


3、通关pikachu靶场csrf防爆破关卡
正常登录请求的回显

若是进行数据包的重发,相同的token会触发token错误。因为在登录失败后服务器会返回一个新的token,后续请求只有附上新token才会生效

新添加一个页面,将之前的数据包复制过来

将两个包添加到同一个序列里面

为第一个包(一号序列)添加一个数据提取器和一个变量
选择xpath 内容为 //input[@name='token']/@value
|

第二个包中不设置任何数据提取器和变量,直接使用第一个序列定义好的变量和提取的数据

最后进行测试
