堆叠注入。

打印 上一主题 下一主题

主题 479|帖子 479|积分 1437

本章分享的堆叠注入是用的靶场的第三十八关来演示
 靶场下载链接:GitHub - workcha/sqli-labs-master: sql注入必练习标题
堆叠注入的原理:假如php代码中使用了mysql_multi_query()这个函数来调用MySQL里的东西,那么就表示网页有堆叠注入。mysql_multi_query()这个函数是用于执行多条sql语句,如下图

其中 mysqli_multi_query($con1, $sql) 这个表示执行存储在$sql变量中的一个或多个sql查询,$con1是连接对象,用于和MySQL保持连接。
第一步:检查网页有没有漏洞,之前的章节已经说了怎么检查网页有没有漏洞,这里就不重复说了。
第二步:使用 ?id=1';insert into users(id,username,password) value(23,"abc",123)%23 来为users表新增数据,其中;这个符号是用于结束前面sql语句,也相当于用;这个符号来分割前后两个sql语句,但是这里不能使用?id=1';select schema_name from information_schema.SCHEMATA limit 0,1 来查询MySQL里的东西,由于这个是一个单独的sql语句,就算查询了也没有体现位可以体现查询的东西,不像之前的union查询一样可以联合在一起查询,但是我们可以使用下令删除MySQL的东西大概新增数据,改动数据的操纵,这里我只演示新增MySQL数据的操纵。
第三步:使用 ?id=-1' union select 1,username,2 from users where id=23 %23 来查看我们刚才新增的数据有没有成功。
 

假如体现上图如许,就代表新增数据成功。
总结:网页只要答应使用两条及以上的下令,那么就有堆叠注入,虽然这个注入姿势很牛,但实际碰到很少,其大概受到API大概数据库引擎,又大概权限的限制只有当调用数据库函数支持执行多条sql语句时才可以或许使用,使用mysqli_multi_query()函数就支持多条sql语句同时执行,但实际情况中,如PHP为了防止sql注入机制,每每使用调用数据库的函数是mysqli_ query()函数,其只能执行一条语句,;这个符号背面的内容将不会被执行,所以可以说堆叠注入的使用条件非常有限,一旦可以或许被使用,将大概对网站造成非常大的威胁。
注:这里我把怎么获取数据库名称和表名称的步骤省略了,大家可以联合之前章节的union,盲注等手法来获取。
此堆叠注入仅供学习参考。
 
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

李优秀

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表