加解密注入
在注入的时候,对变量做了加密操作,比如说?id=1正常显示,但是代码对1进行了加密,这个时候想用?id=1 and 1=1去判断,就得把1 and 1=1整体按照网站的方式加密,再去注入
二次注入
无法通过手动注入,也无法通过扫描工具,只能通过源代码找到
比如在sqli-labs第24关
首先注册账号,这里直接写admin'#,密码写123456
后端注册源码是:
$sql = "insert into users (username, password) values(\"$username\", \"$pass\")";
当我修改密码时,我想把admin'#这个账户的密码从123456改成xxxxxx
后端更新语句源码是:
$sql = "UPDATE users SET PASSWORD='$pass' where username='$username' and password='$curr_pass' ";
把我的输入代入就是
$sql = "UPDATE users SET PASSWORD='xxxxxx' where username='admin'#' and password='$curr_pass' ";
可以发现黄色背景的语句被注释掉了,也就是admin这个账户的密码被更改成了xxxxxx
DNSlog注入
需要注入点高权限,因为会涉及到文件读写。load_file不仅可以读到本机地址,还可以读到外部地址。解决了盲注不能回显数据,效率低的问题
1.意思是可以把一些本来只能盲注的值,传到了外部,达到回显得目的。从而访问DNSlog会有记录,将查询结果外带出来
2.这个语句是,利用concat将select 查询到的结果与一个dnslog的地址进行拼接,形成一个能够访问的域名;接着用load_file来导入(或者说请求)这个地址;于是在DNSLOG中会有记录