上期吹牛的时候,说了下手工注入的基本原理。
“Sql注入攻击是通过将恶意的Sql查询或添加语句插入到应用的输入参数中,再在后台Sql服务器上解析执行进行的攻击。
本质上就是对数据库进行相关的读写操作,对sql语言进行变相的操作。
之前也说到了工具,当时表达出一个观点,不管“黑猫白猫,能抓到老鼠就是好猫”。
确实,不管工具还是手工注入,一般情况下都可以得到相应的信息,但我也说了,是“一般”情况下,那么“二般”情况下呢?
这个就涉及到了各行各业的核心——大神和菜鸟的区别。
菜鸟,有工具我可以搞,但是不一定搞得定。
大神,管你什么玩意,什么能搞,用什么。
手工注入就是这个样子的存在。
原理性极强,熟练使用手工注入的人,一般是脱离了菜鸟水平称号的人。
说太多了,这次讨论几个问题。
手工注入怎么入门?
注入的条件?
一、手工注入怎么入门?
停!先别开口,我生怕你说出一句,“手工注入就是瞎填写东西!”
说到怎么入门,我们先回归本质。
从手工注入的原理来看,关键字,sql。
sql是什么,实质就是一种数据库语言,数据库系统。
又延伸出几个问题:
数据库是什么?
数据库系统是什么?
涉及到哪些东西?
、数据库是什么?
很明显,数据库就是存放数据的地方。
、数据库系统是什么?
实际上分为两个部分:数据库和数据库管理系统。
、涉及到哪些东西?
涉及到表结构,基本的代码执行流程。
所以你认为手工注入怎么入门呢?
没错,就是学习数据库的相关知识,边学习,边操作,本次不进行数据库语言具体展示,下期继续!
二、注入的条件?
先不着急说条件,我先问一个事情?
了解静态语言吗?
了解动态语言吗?
了解前端,后端吗?
、静态语言是什么?
静态语言,是固定运行结果的语言,典型的范例就是html编写的静态页面代码,比如说创建一个表格,在html语言中表格行列数是不能变化和调整的。
、动态语言是什么?
动态语言,根据条件的不同,输出的内容可能不同。例如:编写网页的asp语言,可以通过查询数据库,生成动态行数的数据表。
、前端,后端什么区别?
前端开发主要做的是用户所能看到的前端展示界面,现在很多地方其实都是换汤不换药,前端做壳,底层都是一个样子。
前端开发用到的技术包括很多,比如html5、css3、javascript、jquery这些技术。
后端开发主要做的是逻辑功能等模块,是用户不可见的。
后端开发 以java为例 主要用到的 是包括但不限于Struts spring springmvc ssh等技术。
这些都说了,其实我还是没有回答手工注入的条件。
只有通过后端调用数据库的动态页面才可以使用注入漏洞。
没错,就是动态页面。
又产生了一个问题,什么是动态页面?
专门去百度了一下,来个权威的解答。
所谓的动态网页,是指跟静态网页相对的一种网页编程技术。
静态网页,随着html代码的生成,页面的内容和显示效果就基本上不会发生变化了——除非你修改页面代码。
而动态网页则不然,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。
三、总结
这篇是个普及文章,先了解大概的东西,才好进行下一步操作。
成为大神之路,基础还是要打好,数据库先把基础原理学习会,然后后期手工注入才有大展神威的时候,这个只能自己努力了。
学会系统的理论框架,然后在找到一个具体的方向,进行深入钻研,这样才可以进步。
有很多想法,评论回复。
未完待续,下期继续更新。