方法论
4)覆盖业务范围
2)bandit
3)nodejsscan
gosec 使用ast parser,支持20 漏洞类型检测,是一款比较全面的golang代码审计工具。但单位实际测试效果不太理想,需要进一步troubleshooting。
2、商业工具评测
1)CheckMarx
2)F单位ortify
3、IDE
cases
2)查看官方文档了解框架目录,确认业务逻辑编写路径在applic甲方ation下,开始编写自己的服务,这里定义Index.p什么hp如下图:
3)先输入payload快速验证一下,发现注入成功。
4)下面开始代码审计,定位漏洞代码,可以看到用户传入的参数是直接进入insert函数操作的,那么跟踪insert函数往下走,通过IDE提示知道insert是在thinkphplibrary hinkdbBuilder.php中定义,往下走发现有一个分析数据的函数parseData,跟踪进去:
5)发现parseData有个逻辑,一旦传入参数数组第一个元素是inc时会进入新的函数parseKey处理,再次跟踪进去。
6)发现parseKey没有做任何过滤,叫直接将执行结果返回给用户,由此输入updatexml或者extractvalue函数可造成sql执行出错,从而返回代码当前用户信息。
2、js代码审计
2)跟进router发现cgi与后台逻辑对应关系,main是主页面,app才是业务页面,可以看到/ping对应处理模块是appHandler,身份认证是authHandler,然后response返回给view的app/ping渲染。
3)跟进appHandler找到对应的处理逻辑,发现用户可控参数传到命令执行的函数中,而且没有任何过滤,从而构成任意命令执行漏洞。
3、Python代码审计
2)发现用户传输的参数直接吐到ht叫ml文件中,而html并未对数据进行转义,造成xss。
4、Golang代码审计
2)跟进app.go来看,在main函数初始化路由、注册应用路由。
3)我们先看sql注入的漏洞类型,根据import的模块可知业务逻辑可能在vulnerability/sqli中,找到vulnerability/functions.go找到具体定义如下:
4)那到底有没有sql注入就要看UnsafeQueryGetData函数怎么过滤或者是否做预编译了,跟进vulnerability/sqli什么/sqli.go里查看发现没有组织机构任何过滤,直接拼接sql语句,从而构成sql注入。
>>>>
11月15日,广州:Gdevops全球敏捷运维峰会将举办2019年度收代码官盛会,重点围绕智慧运维、DevOps、数据库领域,携手阿里、腾讯、京东、新浪微博、甜橙金融、联通大数据、微众银行、组织机构贝壳找房、新炬网络等技术代表展开年度技术总结与发展趋势甲方展望,扫码汲取全年技术精华。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至123456@qq.com 举报,一经查实,本站将立刻删除。