第三篇实战

开源程序安全剖析

0day攻击

一般是指没有公开,没有补丁的漏洞,也就是未公开的漏洞。

挖掘Oday的方式一般有两种:源代码审计(白盒测试)和模糊渗透测试(黑盒测试)。

一些常见的源代码审计工具有Source Navigator、Fortify SCA、CheckMarx、 CodeScan、Skavenger等,到目前为止并没有一款全自动的源码审计工具,全部都是半自动的,也就是必须要人工参与。工具做的只不过是查找些危险函 数等,需要根据危险列表加以分析,而这些危险列表的80%都是误报,得靠经验一一排除。

网站后台安全

导致后台脆弱原因

1.模板

2.文件管理

3.执行sql语句:使用SQL导出一句话木马,关键是看数据库,而与脚本无关。不同的数据库导出Shell 的语句也不同

(1)Access 导出Shell只能配合IIS 6的解析漏洞,如果导出ASP格式,将会提示“不能更新,数据库或对象为只读”。

(2) SQL Server  并没有提供直接导出数据的语句,但通过Xp_ _cmdShell 也能达到类似的功能,xp_ cmshell过程添加系統用户

(3)Oracle

4.网站备份

MD5

在保存密码到数据的时候不使用明文,一般会采用 MD5加密后再存储。

破解方法:(1)彩虹表破解

彩虹表(Rainbow Table)是一个庞大的、针对各种可能的字母组合预先计算好的哈希值的集合。彩虹表不仅针对MD5算法,主流的算法都有对应的彩虹表。利用它可以快速破解各类密码。越是复杂的密码,需要的彩虹表就越大,现在主流的彩虹表都是1TB以上的。

获取方法:(1)在网上下载已经有的彩虹表。网上有很多彩虹表,可根据破解的密文类型下载相应的彩虹表,大型的彩虹表都是以太字节(TB)为单位的; .

(2)使用工具生成彩虹表。使用工具可以生成对应加密算法的彩虹表,但生成速度较慢。常见的彩虹表生成工具有RainbowCrack、Cain 等。

配制信息:Hash:选择要生成彩虹表中的种类,也就是彩虹表的分类,Cain几乎支持所有主流的加密算法的彩虹表生成;MinLen: 最小位数,也就是明文密码的最低位数;MaxLen: 最大位数,也就是明文密码的最高位数。其他选项如Chain Len、Chain Count, N° of tables是控制所生成表破解成功的概率,软件下方将会显示当前生成模式的破解率。表分割得越细,成功率就越大,生成的体积也越大,所需要的时间也越长。

破解:Rainbowcrack、 Cain 等工具。使用Rainbowcrack破解MD5非常简单,只需要以下一条命令即可。rcrack.exe -h密文彩虹表目录

(2)专业的MD5破解站点

常见破解站点


拖库

支持外连接

ASP.NET的数据库配置信息一般保存在web.config文件中,一个网站可能会有多个confg文件,数据库配置信息可能就在其中一个文件内。

PHP数据库配置信息一般都会保存在inc、db、fun等目录的config.php、conn.php、 web.php源码文件中。而PHP源码通常是未加密的,可以通过与数据库交互的页面快速找到数据库连接信息。

JSP经常改动的信息一般都会 保存在文本文件中。这个文件主要分为两种类型: Properties 文件(属性文件, 一般以Properties为扩展名)与XML文件,其保存位置一般是在/WEB-INF/文件夹中。使用框架技术之后,其位置也可能随之变化,但一般数据库配置信息都保存在XML文件中。

Navicat 是-款强大的数据库操作软件,它分为很多版本,比如, Navicat for MySQL专门针对MySQL数据库进行操作; Navicat for Oracle专门针对Oracle数据库操作,更强大的是Navicat Premium版本,支持在MySQL、Oracle、PostgreSQL. sQLite及SQLServer之间传输数据,是各种版本的集合。

Navicat适用于三种平台: Microsoft Windows. Mac OS X和Linux。它可以让用户连接到本机或远程服务器,提供一些实用的数据库工具(如数据模型、数据传输、数据同步、结构同步、导入、导出、备份、还原、报表创建工具及计划)来协助管理数据。

单击“连接”→“SQL Server”。在“常规"选项卡中,填写数据库的基本信息,连接名任意填写,在主机名/IP地址文本框内输入IP地址,并在用户名和密码文本框内填写相应的信息。

在“高级”选项卡中可以设置连接超时时间,SSH选项卡则是使用SSH通道连接,这两个选项卡- -般默认即可。

单击“确定”按钮后在左侧将会显示“atack”数据库连接名称,双击“atack”即可连接数据库。

使用Navicat转存数据可分为两种方式:一种是导出表结构,包括约束、验证以及插入数据的SQL语句(表中的数据将以Insert 语句的方式展现),可以说是把整个表完全复制下来;另-种则是导出表中的数据,不需要表结构信息,是纯数据。

1.导出表结构及数据

      选中要导出的表,并单击鼠标右键,选择“转储SQL文件”,这时,Navicat 将会提示你的文件导出后的保存位置,设置好导出文件的保存位置后,单击“保存”按钮,即可导出表结构及数据。

2.导出表数据

选择要导出数据的表(可多选),并单击鼠标右键,选择“导出向导”,将弹出“导出向导”对话框。选择要导出的格式,Navicat 提供了很多格式,最常用的有以下几种。

TXT文本文件:不包含任何表结构,只是纯文本内容:

HTML网页文件:把数据以网页形式展现:

Excel表格:把数据以表格的形式展现;

XML文件:把数据以XML形式展现;

SQL文件:这个比较特殊,把数据以Insert的形式展现。

不支持外连接

一.SQL注射

sqlmap   

--dump转存数据

--csv-del: 导出CSV格式时,列与列之间的间隔字符,默认为空格:

--output-dir: 导出文件夹:

--dump-format: 导出格式,默认为CSV格式,可选择的导出格式有CSV. HTML和SQLITE三种。

--sql-query:执行SQL语句,要执行的SQL语句必须用双引号引起来,以保证命令的完整性。

burpsuite

在使用Burp Suite导出数据之前,首先要确定1.表结构;

2.导出数据条数:

3.构造好导出的SQL语句。

导出数据时,一般都以ID为导出标准,因为在一个数据表中,一般会有[*id]作为表的唯一列标识(主键),这是数据库的三大范式之一.

导出数据

1.将URL载入到Burp Suite Intruder 模块,并将uid的值设置为变量

2.设置PayLoads,把PayLoads类型设置为Numbers,并且从0开始,到数据条数最大值结束,每次增长为l。也就是说,将遍历所有的数据,包括已经删除的数据

3.选择抓取的数据,在“Option"→“Grep Extract” 模块中单击“add"按钮,然后在弹出的新界面中选择“Fetch Response”获取返回信息。获取返回信息后,选取你要抓取的内容,Burp Suite会根据选取的内容自动生成正则表达式。

4.选择“Intruder”→“Start attack",开始导出抓取数据

      在抓取数据完毕后,选择“Save”→“Results Table",保存导出数据的界面

      保存数据时选择“All Rows",表示保存所有的行,“Delimiter” 代表列与列之间的分隔符,默认为“Tab” 制表符,如果想自定义分隔符,可以使用“Custom”。

      “IneludeColumns"是重要的选项,可以勾选要保存的列,选择好相应的信息后,单击“Save”按钮就可以保存提取出的数据。

取消空白行

主流数据库常用的分页语句如下(其中,I代表起始位置,N代表结束位置):

1.Postgre SQL

      select * from table limit I offset N;

2.Oracle

      select t2.* from (select rownum r,t1.* from table t1 where rownum<N ) t2 where t2.r>I;

3.MySQL

      select * from table limit I ,N;

4.SQL Server

      select * from (select top I+N * from table) a where id not in(select top I id fromtable)

      SQL Server分页的写法有很多,这是其中最简单的一种,效率较低,适用于小数据。

二.越权访问

三.本地导入

已有网站权限,攻击者就可以向Web 服务器上传类似于“PHPMyAdmin"在线数据库管理的“拖库脚本”。这类脚本非常小巧,是专门针对数据导出而写的脚本。

第一步:连接数据库信息。

导出数据时首先应该确定数据库信息,包括数据库的库名、账号、密码及端口信息,填写好相关数据库的配置信息后,单击“submit" 按钮连接数据库。如果数据库连接信息正确,将会读取出|指定数据库的表数据条数及表结构信息。

第二步:填写导出信息。

在得知表结构之后,就可以填写要导出的表、列、每次导出行数,以及导出数据的保存路径。在填写完信息后,单击“开始导出”按钮,即可导出数据。

Navicat

在Navicat安装目录下有三个PHP文件,分别是: ntunnel mysql.php、ntunnel_ pgsql.php和ntunnel_ sqlite.php。 这三个文件分别支持对MySQL、PostgreSQL、 SQLite数据库使用HTTP通道连接。HTTP通道经常用于以下情况:网站空间服务商不允许远程连接MySQL,也就无法利用Navicat客户端通过填写服务器地址来远程连接MySQL。这时可以通过HTTP通道方式连接服务器的MySQL数据库。

将ntunel mysql.php上传到网站根目录,然后打开Navicat,单击“新建连接”→“MySQL",选择“HTTP”选项卡,勾选“使用HTTP通道”,在“通道地址”栏写入ntunel mysql.php的URL,填写完HTTP通道地址后,返回“常规”选项卡,填写连接名、用户名及密码。这里需要注意的是,要连接的主机IP地址应该为“Localhost"或“127.0.0.1",代表本地连接。填写完后,即可远程连接MySQL数据库

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • 前言 前两篇主要讲解了一些理论,今天我们举一些简单的例子。全部上实例。 任务 学会举一反三。 Data Query...
    yzzCool阅读 385评论 0 1
  • 注入攻击的分类 1.没有正确过滤转义字符 在用户的输入没有为转义字符过滤时,就会发生这种形式的注入式攻击,它会被传...
    查无此人asdasd阅读 1,591评论 0 5
  • 姓名:于川皓 学号:16140210089 转载自:https://baike.baidu.com/item/sq...
    道无涯_cc76阅读 1,929评论 0 2
  • 身在北街心在东,入园深处思无穷。 晓来日掩彩云里,眼看叶红飞影中。 几处鸟声飘远树,两行雁字写长空。 此时再得金秋...
    雪窗_武立之阅读 342评论 1 9
  • 时光荏苒,转眼孩子已经长大。 时间转瞬即逝,人们更应该珍惜珍惜它,所以我们应该充实...
    d00284a8856c阅读 118评论 0 0