4、数据库可写
数据库可写:
当你前期SQL注入工作完成时,你发现了users表中的admin账户和password的MD5值,在很多情况下,MD5值很难被破解;
但是你发现你可以往数据库中写入记录;然后你可以将一个用户名和一个已知明文的MD5值当作密码写入;此时,你就写入了一个知道密码的账户。
- 输入:’;update users set user=‘gjx’ where user=‘admin’ :替换一个字段
前一个;表示前面一句语句执行完成;下面是另一条语句,但是在交互模式下中,存在这种文法执行俩个SQL语句的bug。以hexorBase为例。客户端由于有所限制,不能并排执行俩条代码。
在修改密码即可。- 输入:’;insert into users(‘user_id’,‘first_name’,‘last_name’,‘user’,‘password’,‘avatar’) VALUES (35,‘g’,‘jx’,‘gjx’,‘d41d8cd98f00b204e9800998ecf8427e’,‘OK’);–
更新记录可以,insert插入一个新的用户也可以。
3.输入:’;drop table users;-- :删除表
Medium和high级别:
mysql_real_escape_string():特殊字符转义,以弃用。’-------->/’
medium:分析源码可知,在$id的变量俩端没有了’’,所以在low级别下的注入语句可以去掉’和-- 后直接进行注入
high: