sql注入篇2 (2)

      以wuzhicms为例,poc: ?m=promote&f=index&v=search&_su=wuzhicms&fieldtype=place&keywords=%27%20and+extractvalue(1,concat(0x7e,(select database())))%23(192.168.116.129是笔者自己搭建用作搭载wuzhicms的虚拟机服务器),如图所示:

sql注入篇2

成功爆出当前数据库wuzhicms。(更多有关wuzhicms(cve-2018-14515)参见笔者的这篇文章)更多有关extractvalue()报错注入可以参见这篇文章,这篇博客写得挺详细的。

    c、UpdateXml报错注入

    (1)、原理

      UPDATEXML (XML_document, XPath_string, new_value);
      第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
      第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程。
      第三个参数:new_value,String格式,替换查找到的符合条件的数据
      作用:改变文档中符合条件的节点的值
      参数Xpath_string的要求与EXTRACTVALUE函数相同。

    (2)、利用

      updatexml函数使用语法和extractvalue()差不多,这里就不在讲了。

    d、关于爆错注入其实远不止这上面所说的三种,还有很多,这里只写了常见的三种,对其余报错注入有兴趣的可以自己去百度。

  4、基于时间的注入

    基于时间注入通过判读页面返回时间长短来得到数据。常用的函数有sleep()、benchmark().

    (1)、sleep()

    以sqllab less-9为例,poc如下::9001/sqllab/Less-9/?id=1%27%20and%20if((mid(database(),1,1)=%27s%27),sleep(5),1)%23(poc解释:如果当前数据库名字第一个字母为s,执行sleep(5),否则执行1)。

sql注入篇2

从截图返回的结果中,我们可以看到返回时间为6.03秒,说明当前数据库名字第一个字母为s,其余数据查询也一样,这里不再做过多说明。

    (2)、benchamark()

    benchmark()有两个参数,第一个是执行次数,第二个是要执行的表达式,这里还是以sqllab less-9为例,poc如下::9001/sqllab/Less-9/?id=1%27%20and%20if((mid(database(),1,1)=%27s%27),benchmark(10000000,md5(123)),1)%23(poc解释:如果当前数据库名字第一个字母为s,执行benchamark函数,执行1000000次md5(123),否则执行1),截图如下:

sql注入篇2

 

可以看见页面返回时间为3.31秒,说明当前数据库名字第一个字母为s(如果返回时间不明显,可以增加benchmark函数中执行次数的量级),其余数据的猜测就是常规操作了,这里不再讲解。

三、结束语

  对sql注入的讲解就到这里,sql注入的知识其实远不止这些,感兴趣的可以百度或者谷歌,如果上述有不对的地方,还请谅解,毕竟作者还是一菜鸟,完结,撒花。

sql注入篇2

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zypwjs.html