1、ibatis拼凑不合理造成SQL注入
关键词:Statement
运用:ibatis有2种方式实行SQL语句,各自为PrepareStatement和Statement。2个方式的区分取决于PrepareStatement会对SQL语句开展预编译,Statement方式在每一次实行时都须要编译程序。大伙儿也许都掌握SQL注入的1个防护方式是运用预编译,但并不代表着运用PrepareStatement就一定安全,不容易造成SQL注入。
2、Mybatis架构错误操作造成SQL注入
Mybatis架构下”${freexx}”那样文件格式的基本参数会参于SQL语句的编译程序,易造成SQL注入漏洞,发生这样的事情具体分成下列3种:
1.模糊搜索like
如下列SQL查寻语句:
Select*fromarticlewherenamelike‘%${标题}%’
2.in以后的基本参数
如下列SQL查寻语句:
Select*fromnewswhereidin(${id号})
3.orderby以后
如下列SQL查寻语句:
Select*fromnewswheretitle=‘122’orderby${clock}asc
4、文本运用
4.1、文件包含
实际上不仅PHP,Java中也是存有文件包含漏洞的,JSP的文件包含分成静态数据包括和动态性包括2种。
静态数据包括:%@includefile="test1.jsp"%
动态性包括:">、
Java的文件包含只能造成文本读取和文件下载的漏洞。运用:反序列化运用通常运用在导进模版文本、通信网络、传输数据、系统日志恢复出厂设置储存、目标数据信息落硬盘、或RF储存等业务场景。因而审计环节中重点关注这种作用版块。利用找寻风险变量值明确反序列化键入点,随后再调查运用的ClassPath中是不是包括风险基本库。若包括风险库,则运用ysoserial开展攻击复现。若不包含风险库,则查询某些涉及到指令、执行命令的源代码位置,避免程序员代码不认真细致,造成漏洞。WXPayUtil下的xmlToMap方式存有rs05漏洞,运用了DocumentBuilder风险变量值,立即将传到的字符串数组变换为了更好地map集合,而且未对字符串数组开展过滤,造成网络攻击者可以传到随意的攻击源代码。
咱们写一个测试标准,读取xmlToMap方式,发觉成功读取文件内容。也许有一些朋友有疑虑,为何要嵌入2个原素,如:"&goodies;";
由于传到的xml语句的原素会被作为list的key,变量值会被当做list的object,如果是只嵌入1个原素,如:"&goodies;";变换为list后就变成了{},由于是获得子连接点传到nodeList中,上边的写法并没有子连接点,因此输入输出null。发掘CSRF漏洞,通常须要最先掌握程序的架构。
CSRF漏洞通常会在架构中存有防护方案,因此在审计时,最先要了解架构对CSRF的防护方案,若并没有防护方案,则存有CSRF漏洞;
若有防护方案,则可以最先去查询删改改要求中是不是有token、formtoken、csrf-token等关键词,若有则可以深化去细读该网站程序对CSRF的防护源代码,来辨别其是不是存有更换token数值自定值并反复要求漏洞、多次重复使用token等漏洞。除此之外还需要关心源代码是不是对要求的Referer开展校验等。