Beego框架简易SQL注入实验
Posted 一只小阿大:)
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Beego框架简易SQL注入实验相关的知识,希望对你有一定的参考价值。
思路:从URL获取参数,使用原生SQL语句访问数据库
参数是SQL delete语句(理想执行的语句SELECT * FROM users WHERE id = (DELETE FROM mytable WHERE 1=1);)
controllers
func (m *MyTestController) GetSQLInjectionTest()
p := m.Ctx.Input.Params() //Params是解析多个参数,返回map
for k, v := range p
m.Ctx.WriteString(k + "=" + v + "\\n")
models.SQLInjectionTest(v)
models
//SQL Injection Test
func SQLInjectionTest(Tableid string)
o := orm.NewOrm()
var maps []orm.Params
num, err := o.Raw("SELECT * FROM users WHERE id = ?", Tableid).Values(&maps)
if err == nil
for _, term := range maps
fmt.Println(term["id"], ":", term["name"])
else
fmt.Println("mysqlOriginallySelect error")
fmt.Println("num =", num)
fmt.Println("err =", err)
然后发现行不通,同事跟我说有两个原因,一个是框架把这语句过滤掉了,还有一个我现在用的是MYSQL8.0,版本比较新,自己试SQL语句的时候都报错,子查询是没问题的
以上是关于Beego框架简易SQL注入实验的主要内容,如果未能解决你的问题,请参考以下文章