首先选择难度,我们从low开始,如上图所示进行修改
目录
SQL手工注入
解释(来自百度):SQL是操作数据库数据的结构化查询语言,网页的应用数据和后台数据库中的数据进行交互时会采用SQL。而SQL注入是将Web页面的原URL、表单域或数据包输入的参数,修改拼接成SQL语句,传递给Web服务器,进而传给数据库服务器以执行数据库命令。如Web应用程序的开发人员对用户所输入的数据或cookie等内容不进行过滤或验证(即存在注入点)就直接传输给数据库,就可能导致拼接的SQL被执行,获取对数据库的信息以及提权,发生SQL注入攻击。
过程:
low
首先在表单中输入1,如上图正常结果显示
输入2如上图正常显示
查看源代码可知这一关对于表单输入ID没有进行任何过滤
注入点判断,如上图可知受到单引号闭合影响
为了方便我们直接把SQL语句中后续语句全部注释掉不执行,在判断语句后加#或者–+即可,全部注释掉就可以不用考虑单双引号闭合的问题
语句1’or 1=1#可以查出所有ID内容(为什么,可以自己学习逻辑语句的知识)
找出注入点以及符号问题,然后判断字段(就是正常查询时可以显示用户的几条信息),通过1’and 1=1 order by 1#
1’and 1=1 order by 2#
1’and 1=1 order by 3#//如果2是正确的的,3返回错误那么就有2个字段,2即为分界点
找出字段之后(找字段的作用是为了后续报错,看会有几个位置可以报错)
之后结合union联合查询(union的知识学习SQL语句相关知识)
有两种语句1’union select 1,2# -1’union select 1,2#(至于有什么区别,个人参照上图,只是页面更简洁,目前我也是小白在我目前的学习进度看来这两条语句在后续操作上没有任何区别,可能会有没有被我发现吧,能记住那个用哪个)
走到这一步就可以进行内容信息查询了
把查询语句中2的位置换成你要查询到内容,那么在返回结果上就在你替换掉的数字的位置上即可显示该信息。
顺序首先是数据库名,表名,列名,之后是具体信息(如上图以及下图,如果自己还想查别的信息,可以再去搜索相关的资料)
语句是-1’union select 1,table_name from information_schema.tables where table_schema=’dvwa’#(dvwa是根据上一个图查出来的数据库名字)
也可以用group_concat把表名拼接起来 -1’union select 1, group_concat(table_name) from information_schema.tables where table_schema=’dvwa’#
知识点:1.在MYSQL5.0********以上版本中存在自带数据库information_schema,他是一个存储所有数据库名,表明,列名的数据库,相当于可以通过查询此库获得相应信息。(没有的话只能靠猜,暴力破解)
2.符号“.”代表下一级: I********nformation_schema.tables:
I********nformation_schema.columns:
查完表名,查列名,语句是-1’union select 1, group_concat(column_names) from information_schema.columns where table_name=’users’#
查完列名就可以查自己想查的东西了。
语句是:-1’union select group_concat(user_id,first_name),group_concat(user,password) from users#
上图就是数据库表中信息了,密码是通过MD5加密,在网上搜索MD5解密工具线上解密就可以了。
一个简单的SQL手工注入就完成了
Medium
下面增加丢丢难度
首先是修改关卡
修改好了之后再次点开SQL注入,有人可能会出现如下图所示的错误(这个有人就是本人,但有的人很幸运没有,别怕,这都是小问题,只是因为你的PHP版本不对,那么怎么修改呢,我没有截图简单告诉你,打开PHPstudy你自然就会,修改完成后就可以打开了)
正确的界面如下图所示点开之后是不是吓到了,跟上一关不一样了不是提交表单了,那么我们的注入点怎么找,别慌,这时候就需要那个很牛的工具burpsuite,至于安装什么的,我的一个笔记里写过,你也可以找其他大佬写的文章来解决你的问题,安装完成后,就需要把burp和DVWA连接起来,首先你需要往浏览器导入一个东西(是你运行DVWA的浏览器),然后你需要打开burp,导入证书,设置代理很多东西,这些都设置完成以后很多人如果用127.0.0.1或者localhost这个地址登录的可能会出现依旧抓不到包的情况(因为我就是)这个时候就需要你把地址改成你自己的IP地址(莫?有人会不知道IP地址怎么查吗,那就是网络基础没学好,乖乖去找度娘吧)一切准备就绪,burp成功抓包
数据包中的内容想必大家也不陌生了,如果看不懂那么请你去认真学习HTTP,在数据包中会找到我们提交的ID,这里的ID的位置就是我们可以利用的注入位置,之后的步骤就跟上面一模一样,以下就是简单的演示。
有人会在这一步可能会遇到这个问题,那么查看源代码会发现了一个转移函数,这个经典的函数想必大家略有耳闻,那么采用十六进制等绕过,把需要用到单双引号的词,用十六进制(在网上查)