SQL注入【一些注入点总结】(六)

前面分享3篇sqli靶场实战
Web安全-SQL注入【sqli靶场第11-14关】(三)
SQL注入【sqli靶场第15-19关】(四)
SQL注入【sqli靶场第20-22关和dnslog外带】(五)

第11-17关是登录输入框时存在SQL注入,也就是查询或更新的地方。第18关是在User-Agent简称UA,第19关在Referer,第20关在Cookie。

1、GET或POST注入

GET方式就是直接在网址后面加上需要注入的语句,POST则是通过表单的方式。

2、UA注入

有些网站会把用户的UA信息写入数据库,用来收集和统计用户信息,就有可能存在UA注入,一般会把数据插入到某张中所以可用报错注入。

3、Referer注入

当访问一个网站时,浏览器需要告诉服务器是从哪个地方访问服务吕,大部分网点或app都会写入数据库用来分析流量是从哪里来,以及统计广告投放的成本。一般会把数据插入到某张表中,所以可用报错注入。

4、Cookie注入

以提交的参数以Cookie方式提交,注入原理和其他注入方式一样。修改自身Cookie,后台获取到这个Cookie后,会直接拿去数据库里进行比较,比较时就有可能存在注入。

5、二次注入

发现常用一些的注入方式不生效时可以使用该方式。 在第一次插入数据的时候,数据中带有单引号,直接插入到了数据库那种,然后在下一次使用中在拼凑过程中,就形成了二次注入。

在sqli靶场第24关,比如已知账号admin,注册一个账号admin'# , 用账号admin'#登录并重置密码,结果重置的是账号admin的密码。第24关在下期分享。

6、DNSLOG外带

通常我们面对SQL注入过程中没有回显的情况下,只能通过盲注的方式来判断是否存在SQL注入,但是使用盲注,手工测试是需要花费大量的时间的,可能会想到使用sqlmap直接去跑出数据,但在实际测试中,使用sqlmap跑盲注,有很大的几率,网站把ip给封掉,这就影响了我们的测试进度,也许你也可以使用代理池。

我们输入域名之后,本地域名服务器会把在自身服务器里面查询是否存在ip地址,如果没有则发送到根域名服务器,如果根域名服务器里面有对应的记录则返回,如果没有则告诉本地域名服务器去向顶级域名服务器查找。

dns在解析的时候会留下记录,当dns服务器是我们自己的时,我们就可以通过查看日志来查询一些信息 。

SQL注入【一些注入点总结】(六)_第1张图片

(图片来源网络)

将dnslog平台中的特有字段payload带入目标发起dns请求,通过dns解析将请求后的关键信息组合成新的三级域名带出,在ns服务器的dns日志中显示出来。

SQL注入【一些注入点总结】(六)_第2张图片

(图片来源网络)

6.1、了解什么是UNC

UNC路径类似\soft这样的形式的网络路径。它符合 \servername\sharename 格式,其中servername 是服务器名,sharename是共享资源的名称。

目录或文件的UNC 名称可以包括共享名称下的目录路径,格式为:\servername\sharename\directory\filename

6.2、所需的条件

dns带外查询属于MySQL注入,在MySQL中有个系统属性secure_file_priv必须为空,要root权限,并且服务器要为Windows操作系统。条件要求有些高。

通过DNSLOG盲注需要用到 load_file() 函数,该函数不仅能加载本地文件,同时也能对URL发起请求。因为需要使用 load_file() 函数,所以需要root权限,并且 secure_file_priv 需要为空。

关于dnslog外带注入例子可以看SQL注入【sqli靶场第20-22关和dnslog外带】(五)

7、下期内容预告

下期继续分享:SQL注入【sqli靶场第23-28关】(七),敬请关注我的公众号:大象只为你,持续更新中…

你可能感兴趣的:(跟我学网安知识,sql,网络安全)