搞死SAP系统系列 让系统无法连接数据库

前言

首先郑重申明:本文并不是想教唆你怎么把SAP服务器搞死.

虽然你确实可以从本文中学到搞死SAP服务器的技巧,但是如果因为你对公司的抱怨而导致你无意中使用了本文中的方式无意中搞死了贵公司的SAP服务器.

请不要甩锅给本文作者. 罪过在于你无意的报复之心及贵公司无意让你拥有了报复之心.

鉴于本文可能让部分心有芥蒂的程序员有更强的破坏力.

在文末会给出相应的解决方案

本文主要介绍怎么让SAP系统无意中无法连接数据库系统

破坏效果

(犯罪电影中搞了破坏的犯罪者,往往喜欢留在现场观看一下自己的杰作能达成的效果.可以归因于犯罪者的变态,但更多是一个杰出犯罪者的一种总结,通过观察现场警察的反应,观察破坏达成的效果,分析总结执行方式,以便改进? )

同样,如果你想搞一个特定的系统破坏活动,肯定希望知道杀伤力有多大,系统表现是什么样的:

所有涉及到数据库的系统操作(激活表,释放请求,查询或修改单据等)都会报错,报错信息在ST22中大部分以: DBSQL_CONNECTION_NO_METADATA 呈现. 这样的效果还满意不?

26aa6470bb84bd2e712420b4f650d52f.png

通过报表 RSDUMPQM 可以看到一个DUMP的统计报表.

可以发现大量的

DBSQL_CONNECTION_NO_METADATA报错.

35e8fb052bc1d475c348909a2c8e59c8.png

相关NOTES

通过查询DBSQL_CONNECTION_NO_METADATA 可以获取几个相关的NOTES

NOTES: 2076388 中给出了报错的原因,但是不具体.

9e982487488d3c56314f479f8760f30d.png

2995840 其中提到NOTES 2399990

4815e3e375e2a904eddd542c2a9e3fb2.png

3bece73f338ad3300f247988f1f67a2c.png

段子的提示

曾经听过一个段子:

怎么简单有效的报复那些电话诈骗犯?

答案是: 假装上套,获取到对方的银行信息及卡号, 然后登录网银随机尝试密码,错误3-5次后,卡会被锁.

没有实际尝试过. 不太清楚可操作性?(貌似系统隔天会自动解锁,哼,每天一大早都去试试).

中断系统与数据的连接方案呼之欲出.

几个问题

段子中的报复手段有几个需要解决的问题:

银行信息(数据库IP地址)

银行卡号(数据库用户)

网银地址(数据库连接方式)

怎么解决这些问题呢? (这些问题在段子中都不是问题,骗子会主动告诉你的)

技能储备

做任何事情都需要有一定的知识/技能储备,才能把事情做成.

当然做坏事的技能要求可能比做好事的技能要求要低.现实世界的很多事似乎都是如此,所谓破坏容易重建难.

01

获取数据库IP地址

如果通过询问系统管理员解决,那么你就会留下线索.

因此需要一个隐秘的方式.

系统状态中可以看到主机.

6617a62600e00332bfe2bab9ba75384a.png

有点计算知识的,都知道可以通过ping 命令获取主机的IP,这里需要一个稍微复杂的技能: 了解并知道怎么使用 SM49

详见链接

无峰,公众号:ABAP 技巧与实战SAP小技巧 终止进程

创建一个外部命令,

ping -c 2 <主机名称>

必须使用参数 -c n  指定一个ping的次数, 否则系统会一致等待ping的执行,假死.(linux ping 没有默认4次,默认无限次)

3c557519522796c96d704156c24d6e3e.png

870b710c391d66cbae2141e545c477c4.png

02

数据库用户

DB02可以查询,系统会显示默认数据库连接用户. 当然很多S4系统链接数据库的默认用户是SAPABAP1

0740274816a66d9adc8136305c689589.png

03

数据库连接方式

通过HANA STUDIO客户端连接

通过DB02/DBCO连接

详见链接

无峰,公众号:ABAP 技巧与实战ABAP基础知识 访问外部数据库-配置篇

推荐实施方案

通过DB02中连接外部数据库的方式

通过DB02中的数据库连接有一个很有意思的特性

d44977aa1db612cc54acd640ced1650d.png

DB02中创建了连接本地数据库的DBCO  S4D (密码可能不正确,连接名称最好和系统名称一致,否则效果不好. )

当第一次输入的密码不正确时,系统会警告, 此时回车或者重新输入另一个错误密码,可以忽略警告,并保存成功.

当你测试这个连接时, 系统会提醒连接成功. 所以你会以为自己输入的账号,密码是正确的.  

3f7594890a9750c8f4cb143ce1d458b1.png

991355863f5a7b278f8613705d5d4453.png

创建后, DB02 进入后会报错,系统尝试两次连接 S4D(一次是标准的, 第二次是DBCO中维护的?并且尝试多次 )

8ea1949305a81f380dc0e5e7d9ea174c.png

此时,数据库系统已经锁住了SAPABAP1账号.

  • 用SE11 修改数据字典对象报DUMP

  • DB02中已经无法删除远程数据库连接 S4D.

  • 用SQL编辑器也无法查询表内容

  • 释放请求会报DUMP.

  • ......

各种错误纷至沓来.

6658ae6d07a2bdfc160f7287b86a05c9.png

解决方式

解决方式很简单,用SYSTEM 账号登录HANA STUDIO 找到SAPABAP1 账号(锁定状态),解锁即可.

但是所有的报错信息都没有明确的指向这一点. 根据ST22中的DUMP信息找到这个解决办法还是挺麻烦的.

6ef60498a8a360abbc8d4b7a0833d707.png

总结

SAPABAP1是S4应用服务器连接HANA 数据库的默认用户(ECC连接数据库的默认用户似乎是<SID>ADM). 数据库用户因为安全考虑, 错误尝试登录次数过多会导致锁定. 

创建DB02中的外部系统连接时,输入错误的密码.再次启动DB02时,系统会同时尝试外部连接中与系统ID相同的数据库连接. 因为输入了错误的密码, 多次连接报错导致用户被锁.

服务连接命名 R/3*<字符串> 比如报错中的  R/3*DDFTX

系统连接数据库不同的场景使用了不同的服务连接, 这些服务连接共用了 SAPABAP1 账号/密码连接数据库. 这个账号被锁, 导致所有的服务连接报错.

解锁用户SAPABAP1,需要用到数据库SYSTEM账号及密码.

DB02中可以查询到数据库的所有连接信息

20eef3564c849a7851424c15099052c2.png

THE

END

约定

如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.       

    (如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.)

49216597ae0e908eeebab870b6c5fd95.png

公众号 : syjf1976_abap

          ABAP开发技巧

微信号 : 392077

请微信联系管理员: 

syjf1976 

sharry_xlp  

Yannick_Duan 

申请进入公众号讨论群提问或者参与话题讨论

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值