由于换了Mac,因此原来windows下的mysql监控小软件不能再用,只能自己造个轮子,下午抽空写了个监控脚本,代码不是很复杂,供有需要的人阅读参考,也可以根据下面再做定制
环境(Python 2.7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
#-*-coding:utf-8-*-
import time
#mysql log位置
file = ‘/Applications/XAMPP/xamppfiles/var/mysql/ADog.log’
#去重函数
def removal(string):
log_list_new = []
num = string[:2]
log_list = string.split(num)
for i in log_list:
i = i.rstrip(‘t’).rstrip()
log_list_new.append(i)
log_list_new = list(set(log_list_new))
string = num + ‘ ‘
for j in log_list_new:
string += j
return string
#获取当前时间函数
def GetNowTime():
return time.strftime(“%Y-%m-%d %H:%M:%S”,time.localtime(time.time()))
#监控日志文件函数
def monitorLog(logFile):
print ‘监控的日志文件 是%s’ % logFile
print ‘当前时间 是%s’ % GetNowTime()
with open(file , ‘r’) as fp:
fp.seek(0,2)
try:
while True:
last_pos = fp.tell()
line = fp.readline().strip()
#这里只读取预编译和执行语句
if (‘Prepare’ in line) or (‘Execute’ in line) or (‘Query’ in line):
print removal(line)
print ‘——————————————————————————————————————–‘
except KeyboardInterrupt:
print ‘exit…’
if __name__ == ‘__main__’:
monitorLog(file)
|
这里需要说明下测试时候用的是某最新款cms,典型的TP5框架,所以通篇都是预编译,因此这里只选取了预编译相关的执行语句,后来再测试时候发现最普通的query语句没加入选取规则,不知道其他还有没有遗漏的,这里可以根据需要自行添加~
下面放出效果图(感觉还是有点复杂,,可能是打开了首页导致加载了过多的sql语句吧)
起初想对母校进行一次友情检测,实在没有找到突破口就想从旁站看看,然后就有了这篇文章,但是最后没有提权成功,很气~ 旁站有很多个,但是要么是找到漏洞找不到后台,要么找到后台直接是个静态页面,搜寻了很久之后,最终在这个废品网找到了突破口! 随手一试,果然试出了问题…
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
喜欢就支持一下吧
请登录后发表评论
注册