代码审计之SQL注入及修复

在新手入门web安全的时候,sql注入往往是最先上手的一个漏洞,它也是危害相当大的一个漏洞,存在此漏洞的话,将有被脱裤的风险。

以下所有代码都是我自己写的,可能有不美观,代码错误等等问题,希望大家可以指正。

漏洞讲解

如图是一个正常的登陆框

file

点击登陆时,抓包

file

这时,直接将其丢入sqlmap中,进行注入检测

file

可以看到直接爆出了系统环境、数据库版本等信息

这里先补充一下前面所用到的代码

login.php

file

logins.php

file

代码中直接接收了传来的参数,然后直接带入查询数据库,没有进行任何的过滤,所以就导致了sql注入的产生。

简单修复

这里,只需要将传入的参数进行过滤,就可以了,过滤的方法有很多,这里我使用addslashes()函数来进行过滤。

首先增加一个过滤的函数

file

然后,在传入的时候,对变量进行过滤

file

此时再次sqlmap跑一下

file

拓展

这里需要注意一个问题,addslashes()函数也是有绕过的方法,所以一定要注意以下问题

1.一定不要使用gbk,会存在宽字节注入

2.在编码解码之后,一定要再次进行过滤

3.在使用这个函数之后,一定不要再使用stripslashes()函数

4.如果还要做字符串的替换的话,一定要注意其严谨性

文章首发公众号:无心的梦呓(wuxinmengyi)

这是一个记录红队学习、信安笔记,个人成长的公众号

扫码关注即可

file

posted @ 2019-09-28 08:23  信安本原  阅读(852)  评论(0编辑  收藏  举报