例:(mybatis 参数使用 $ 时)
1.查询语句:
select username,pwd from table where username=${} and pwd=${}//登录语句
可在pwd的输入框注入参数
' or 1=1 #
这里的 # 号的意思是 注释的意思 这里已mysql为例 oracle 是 --
理想执行的sql是:
select username,pwd from `user` where username='admin' pwd='123456'
但是注入后 实际执行的是:
select username,pwd from `user` where username='admin' pwd='' or 1=1 # '
这样就达到了避开登录验证了
2.动态sql:
select * from `table` where size>100 and size<200 ;
当table 为动态时( ${table} ) 可注入 table ' #为mysql数据库sql注释'
可除参数 而不局限于 size 100-200 从而获取所有的数据
以上是 简单介绍 其余深入的可以自己理解
探讨:qq 185624592