这两天搞了很多注入,发现一些规律,大部分的注入,都会存在布尔盲注、时间盲注。一些脸比较黑的会在此基础上出现联合、堆叠、报错等注入,也就是说,大部分的情况下,布尔盲注和时间盲注是发现注入点的一条捷径。
那么如何快速的测一个点是否存在注入呢?
当然是小型payload跑了,这里我分享一些payload里面会有些重复的,可根据个人喜好进行删除或添加。
Sqlmap Mysql level 3 risk 3的布尔&&时间盲注payload:
https://github.com/du1ge/dict/
附一个偷懒小技巧:
sqlmap有个很nb的参数:-g //将语句google查询后取第一页的结果进行批量注入测试(正在研究怎么让他多跑几页)
所以就会催生出如下语句:
python3 sqlmap.py -g "火线 inurl:php?id=" --batch --level 2 --risk 3 --retries 5 --random-agent --thread 3
如果确定后端数据库可以精准注入:--dbms mysql
---------------------------------------------------------------------------------------------------------------------
众所周知,目前默认配置下,注入能拿shell的基本上就mssql一个好兄弟了,一般堆叠的时候都能shell,像正常上去就是dba权限,能写能读能出网就不多说了。
这里主要讲下osshell之后是mssql权限该咋整,比如这样:

就很蛋疼。
结合这两天的情况来看,基本可以按照这个思路来走。
1、找可写目录,这种情况下大概率只有web、C:\windows\temp目录可写,站整几个报错看看有没有绝对路径。
2、如果不是堆叠+延时的点,可以看一波tasklist有没有杀软进程。
3、看是否出网,出网直接 certutil,curl 下web马或者cs,有杀软可以先web免杀马安排再进行下一步。
4、certutil,curl 不能写,没权限执行等,查看echo能不能写,此处提供一个写马语句:
echo|set /p="<%@ Page Language='C#' %>" >> D:\site\p1.aspx
不用加转义符,引号内为马的内容,这里是因为当时GET型注入,数据包长度限制只能分片写进去。
5、传图片马,rename改后缀。
6、都不行怎么办?下一个!壮哥说了,要做到打哪指哪。
此处当时写马的时候碰到一个问题,一个数据包会被执行三次,也就是写马的语句会被写入三次,当时人懵逼了,后在某位大哥提醒下才想起来。
echo 1 >> 1.txt ,>>是追加
echo 1 > 1.txt, >是覆写
直接覆写就行了!
总结:
思路要骚,我还是太年轻
本文迁移自知识星球“火线Zone”
'"/><script>alert(0)</script>