本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注"慕课网"! 作者:Beerus|慕课网讲师
背景
本周在《Web安全渗透测试》课程的QQ群中,有同学提问了一个关于网上一个关于SQL注入漏洞讲解案例的问题,如图:
很明显,这是个错误案例。 如果是一个没有老师或前辈指导的情况下,询问ChatGPT能否帮忙解决这个问题呢? 浅探ChatGPT的安全能力。 注:基于GPT 3.5。
开门见山,直接问是否能成功注入,答案是存在的:
再重复问一遍,态度很坚定,如果是没有相关基础的同学看到话、估摸着就拿来当结论了…:
再质疑一遍,就动摇了,但也没有找到问题的关键点所在,只是觉得会校验有效的user参数值:
没办法了,只能直接问关键点,这个ChatGPT是知道的:
关联上述语句,再问一遍,结果还是说or优先级高于and,还是有问题:
再追问一遍,就纠正过来了即and优先级高于or,但结论还是不对的,因为它理解表中存在user为abc和pass为12345的行就会返回表中所有行,真实是只会返回一行:
这次加个前提条件即不存在对应的用户名和密码再问题一遍,直接给出错误答案。。。 :
针对错误点再次提出疑问,虽然对错误点进行了纠正,但还是存在错误(没有abc用户名不返回任何行):
回过头来再问,会纠正一些,但不多。。。:
再细问具体不存在用户名和密码的场景,终于给出了正确的不会返回任何行的答案。。。:
最后给出的结论终于正确了,但还不够全面:
至此,相信也再次印证了ChatGPT一本正经地胡说八道的现象了,同时也相信GPT4的能力会比3.5强很多,后续有机会再更新下4相关的能力表现。
欢迎关注「慕课网」帐号,我们会一直坚持提供IT圈优质内容,分享干货知识,大家一起共同成长吧! 本文原创发布于慕课网 ,转载请注明出处,谢谢合作