进入第二十四关,这关叫二阶注入,二阶注入个人感觉和存储型xss有些类似,大致分为以下几步:
-
攻击者在HTTP请求中提交恶意代码(可以是sql,js脚本等)。
-
应用将输存储在数据库以便后面使用并响应请求。
-
攻击者提交其他请求。
-
为处理其他请求,应用会检索已经存储的输入并处理它,从而导致攻击者注入的恶意代码被执行。
先去看看源码:
login.php 中mysql_real_escape_string()函数可以转义 SQL 语句中使用的字符串中的特殊字符,无法注入
login_create.php中也都进行了转义,所以无法在创建时注入
突破口来了,在pass_change.php中发现uname用户名是从session获取,不会进行转义,于是可以先创建用户名为 admin’# 的账号将sql变为UPDATE users SET PASSWORD=‘pass’ where username=‘admin’ # ’ and password=‘curr_pa