分享

JWT注入

 小灰灰i58u7w06 2020-06-01

文章源自【字节脉搏社区】-字节脉搏实验室

作者-purplet

扫描下方二维码进入社区

【网鼎杯2020玄武组】js_on

通过这道题再次学习到JWT的一种考法。首先题目打开是一个登录框,默认弱口令admin/admin登陆成功,页面返回了一个key值

回到前台重新再注册一个号purplet/123456,登陆后返回如下信息

说明后端肯定判断了当前登录用户是否为admin,如果不是就返回Hello 用户

登陆后再利用BurpSuite进行抓包,看到cookie处存在JWT的信息,对前两段内容进行base64解码,可以看到

{“alg”:”HS256″,”typ”:”JWT”}.{“user”:”purplet”,”news”:”Hello purplet”}

可以看出后端通过JWT对当前用户进行了判断,从而决定页面输出内容,因此猜测user字段中可能存在sql注入漏洞,利用在线加密网站 https:/// 进行尝试

PAYLOAD处user构造一个sql注入的检测,news随便输入即可,当user处的值为真即可输出news中的值。密钥填写admin登陆后所给密钥

然而发过去却触发了waf,因此考虑绕过,先将空格换成/**/试下

可以看到当等式不成立时输出红线所画信息,再次构造user为admin’/**/and/**/1=1#

可以看到出现了news中的值:1,那么确认是sql注入无疑了,引用大佬的脚本,利用load_file读取根目录下的flag

还有一种方法,将算法置为none,同虎符杯的easy_login一题有相似原理,将第三部分置空,但前面带上.

如上这么构造,对.左右两边分别base64加密,发包过去,得到正常回显

很明显这样也可以成功构造注入,经过Fuzz测试又发现过滤了select,可用sel<>ect绕过,借用大佬的脚本跑出flag,这波学习到了。python2下运行

通知!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多