SQL注入面试

发布时间:2023年12月26日

常见数据库端口

mysql:3306
sqlserver(mssql):1433
oracle:1521
postgreSQL:5432
db2:50000

SQL注入危害

利用万能密码绕过登录认证
获得数据库,查出管理员账号密码
读取文件内容,向服务器写webshell,植入木马
破坏数据库,是网站崩溃

SQL注入防御

使用安全API
对输入特殊字符进行Escape转义
使用黑白名单规范输入
服务器端在提交数据库SQL查询前,对特殊字符进行过滤、转义、替换、删除等操作
SQL语句采用预编译和绑定变量
使用安全设备进行防护,例如WAF

SQL注入种类

union、布尔、报错、时间、堆叠查询、二次注入、宽字节等

mysql常用函数

database():数据库名
user():数据库用户名
updatexml():更新xml文档,常用于报错注入,可代替函数:extractvalue
mid():从指定字段中提取字段的内容
limit():返回结果中的前几条数据或者中间的数据
concat():返回参数产生的字符串
rand():参数0~1个随机数
flood():向下取整
substr():截取字符串,可代替函数:substring()mid()
ascii():返回字符串ascii码
left():返回字符串最左边指定个数的字符
ord():返回字符的ascii码
length():返回字符串长度
sleep():延时函数

SQLMap常用参数

--dbs

--batch

SQLMap怎么进行注入

get类型:直接sqlmap -u url地址
post类型:sqlmap -u url --data=post的参数?
? ? ? ? ? ? ? ? ? sqlmap -r 请求数据包的文件地址
header注入:sqlmap -r 请求数据包的文件地址
注:在进行post注入或header注入时,可以使用*标记注入点

如何突破注入时字符被转义

宽字节注入
hex编码绕过

mysql的网站注入5.0以上和5.0以下区别?

mysql5.0以下没有information_schema库,不能列表名,只能暴力跑表名
mysql5.0以下是多用户单操作
mysql5.0以上是多用户多操作

SQL注入写shell条件

待学习

udf提权原理

待学习

暂时到这,有时间继续补充

文章来源:https://blog.csdn.net/2301_82000839/article/details/135210808
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。