关于“php_sql注入函数”的问题,小编就整理了【2】个相关介绍“php_sql注入函数”的解答:
如何判断PHP源码是否存在SQL注入漏洞?判断是否存在SQL注入首先找到可能的注入点;比如常见的get,post,甚至cookie,传递参数到PHP,然后参数被拼接到SQL中,如果后端接收参数后没有进行验证过滤,就很可能会出现注入。比如xxx.com?id=321,id就很可能是注入点。
说白了就是不要相信用户输入,对用户可控的参数进行严格校验。注意是严格校验!简单的去空格,或者是特殊字符替换很容易绕过。
如果已经有原码,可以进行代码审计,进行逐一排查。也可以搭建本地环境使用类似于sqlmap这样的自动化工具进行可以链接的检测。
个人理解仅供参考,如有偏颇望批评指正!
SQL注入的直接手段?1、UNION query SQL injection(可联合查询注入)
2、Error-based SQL injection(报错型注入)
3、Boolean-based blind SQL injection(布尔型注入)
a. 判断长度
b. 猜测内容
4、Time-based blind SQL injection(基于时间延迟注入)
5、Stacked queries SQL injection(可多语句查询注入/堆叠注入)
1. 字符串查询:直接在查询语句中添加' or '1'='1
如:select * from users where username='abc' or '1'='1'
这会返回所有用户记录。
2. 追加查询:使用;将两个查询语句串联起来
如:select * from users where username='abc'; drop table users --这会删除users表
3. 注入函数:利用数据库内置函数
如:select * from users where username='abc' and substring(password,1,1)='a'
这会返回密码第一位为a的用户。
4. 查表结构:利用特殊函数获取表结构信息
如: select * from sqlite_master --获取SQLite数据库所有表
5. 读取文件:利用load_file()或其他函数读取服务器文件
如:select load_file('/etc/passwd') --读取passwd文件内容
到此,以上就是小编对于“php_sql注入函数”的问题就介绍到这了,希望介绍关于“php_sql注入函数”的【2】点解答对大家有用。