博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WEB新手之sql注入
阅读量:6499 次
发布时间:2019-06-24

本文共 847 字,大约阅读时间需要 2 分钟。

  继续写题。

  这题看上去是一道sql注入题。F12查看后台代码。

  可以看到后台有两个变量,分别是uname以及passwd。然后接下来读一下后台的代码,这里的意思是,如果用户输入的密码经过md5加密后,和通过select语句选出来的password相等,则输出“login success”,否则输出“login fail”。利用这里md5()条件语句,我们可以对后台的sql语句进行注入。

  发包之后,这里后台的sql语句实际上就变成了"select password from gwuser where username ='-1' union select md5(1)#'"。接下来后台条件语句进行判断的时候,因为此时row['password']为md5(1),而发过去的包里面passwd亦等于md5(1),条件成立,所以页面会跳转到这样一个界面,如下图所示。

  继续F12查看后台代码,如下图所示。

  可以看到后台也有两个变量,分别是no和name。先尝试一下sql注入爆表,如下图所示。

  成功爆出表名——“gwhts"

  而后继续爆行,如法炮制。不过接下来很快会发现报错,弹出"Attack!"

  检查过自身语句没有错误后,这时考虑到了后台对标点符号的过滤(本题亮点)。于是将? / . ' ` "等英文标点符号导入到burpsuit,一起发包,得到下图。

 

 

 

 

  通过上面两张图我们可以发现,在输入name变量的时候, ' 被后台过滤掉了,而其他字符没有。于是sql注入语句应该要改为"no=-1\&name= union select column_name from information_schema.columns where table_name="gwhts" limit 1,1#"。爆出行val。

  最后爆出flag。如下图所示。

 

转载于:https://www.cnblogs.com/Buki11/p/10575719.html

你可能感兴趣的文章
spring @component的作用
查看>>
eclipse编辑窗口不见了(打开左边的java、xml文件,中间不会显示代码)
查看>>
1.JSONObject与JSONArray的使用
查看>>
34.TokenInterceptor防止表单重复提交
查看>>
cogs 362. [CEOI2004]锯木厂选址
查看>>
Python中处理时间 —— time模块
查看>>
Twisted模块示例
查看>>
WCF优化的几个常规思路
查看>>
Sql Server 因为触发器问题导致数据库更新报错“在触发器执行过程中引发了错误,批处理已中止”的问题处理...
查看>>
npm-debug.log文件出现原因
查看>>
You may remembe MBT Changa
查看>>
洛谷P3723 [AH2017/HNOI2017]礼物(FFT)
查看>>
洛谷P4705 玩游戏(生成函数+多项式运算)
查看>>
Vue API(directives) 自定义指令
查看>>
python中的类的成员变量以及property函数
查看>>
ECMAScript 5 —— 单体内置对象之Math对象
查看>>
svn服务器发生变更,如何切换
查看>>
HashMap和Hashtable的区别
查看>>
检测到有潜在危险的 Request.Form 值
查看>>
[学习笔记]最小割之最小点权覆盖&&最大点权独立集
查看>>